2009-03-02 15 views
1

次のようにDataTableクラスを使用できますか?.NETのスタンドアロンDataTable

DataTable client = new DataTable("client"); 

int primay_key = 1; 

DataRow row = null; 

row = client.findBy(primary_key); 

findByの後に、行オブジェクトにデータベースの行が含まれますか?

私はインターネット上でそのような例を見つけることができません.net はDataTableクラスに組み込まれているように見えました。

答えて

0

はい、あなたがそのようなデータテーブルを使用することができます - あなたはDataTable.Rows.Find

+0

erm、nope! DataTableには何も付いていません。 –

0

DataSet/DataTableのような適切なデータベースではありませんが試してみてください。あなたは通常、RDBMSに関連付ける機能のほとんどがなくても、モーモリオブジェクトモデルには確実に使用できます。

+0

私はちょうど「こんにちはマーク、あなたは遅刻している」と言っていたが、サミットに来なければならないことに気づいた。 –

+0

;-p確かに。しかしちょっと待ってください;-p –

2

DataTableは、メモリ内のデータベーステーブルをモデル化するオブジェクトです。 DataTable自体は、データベースとのやりとりを一切行わない。最初に、データベースシステムに適したデータアダプタオブジェクトを作成し、それを使用してメモリ内のDataTableを満たす必要があります。

例:

SqlConnection conn = new SqlConnection(connectionString); 
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Clients", conn); 
DataTable dt = new DataTable(); 
da.Fill(dt, "Clients"); 
3

あなたは 'QUERY' それをする前のDataTableを埋めるために必要があります。

あなたがすでに設定SqlCommandオブジェクトを持っていると仮定すると:

public static DataTable GetDataTable(SqlCommand cmd) 
{ 
    DataTable dt; 

    using (SqlDataAdapter da = new SqlDataAdapter()) 
    { 
     da.SelectCommand = cmd; 
     dt = new DataTable(); 
     da.Fill(dt); 
    } 
    return dt; 
} 
0

I DB内の異なるテーブルごとに何度も同じコードを書く必要があるので、dataAdapterを使用してdataTableを埋める必要はありません。

ドットネットのdataTableクラスはDB内の実際のテーブルに関連付けられていない場合は、 は、市場での製品はそれを行うありますか?コンポーネント、オープンソースプロジェクトですか?

+0

お探しのものはORMシステムと呼ばれています。そこには様々なフリーでオープンソースのORMシステムがあり、NHibernateが最も人気があります。あなたが少しのお金を費やしてもかまわないなら、私はOPF3がとても良いと感じました。 –

関連する問題