クライアントインターフェイスガイド > ADO.NET経由でのTDVサーバーへの接続 > ADO.NETドライバーをテストするためのサンプルコード > CompositeCommandBuilderの使用
 
CompositeCommandBuilderの使用
CompositeCommandBuilderを使用して、TDVリソースにアクセスまたは変更するコードを実行できます。次のサンプルコードは、現在のSELECTの最初の行を削除します。 builder.GetUpdateCommandは、Microsoft実装を使用する場合に必要ですが、次のサンプルではオプションです。
CompositeCommandBuilderを使用するには
1. SQLステートメントと接続オブジェクトを使用してCompositeDataAdapterオブジェクトを定義します。
2. CompositeDataAdapterオブジェクトを引数として、新しいCompositeCommandBuilderオブジェクトを作成します。
3. 新しいDataTableオブジェクトを作成してクリアします。 da.Fill(dt)メソッドの呼び出しを使用して、データを入力します。
4. 最初の行を削除するには、dt.Rows[0].Delete()を呼び出します。 da.Update(dt)ステートメントを呼び出した後、削除が完了します。
public void TestDelete()
{
CompositeConnection conn = GetConnection();
CompositeDataAdapter da = new CompositeDataAdapter("select * from products where ProductID in (1111)", conn);
CompositeCommandBuilder cb = new CompositeCommandBuilder(da);
 
DataTable dt = new DataTable();
dt.Clear();
da.Fill(dt);
 
dt.Rows[0].Delete();
da.Update(dt);
}
 
5. 指定された値でカーソルに行を挿入します。セクションAは、新しい行の挿入が開始される場所を示します。
public void TestInsert()
{
try
{
CompositeConnection conn = GetConnection();
CompositeDataAdapter da = new CompositeDataAdapter("select * from products", conn);
CompositeCommandBuilder cb = new CompositeCommandBuilder(da);
DataTable dt = new DataTable();
da.Fill(dt);
 
//Section A
//Create the new row
DataRow row = dt.NewRow();
//The values in the new row are set with:
row["ProductID"] = 1111;
row["ProductName"] = "TDV";
row["ProductDescription"] = DBNull.Value;
dt.Rows.Add(row);
//Insertion of the new rows into the database
da.Update(dt);
}
catch (Exception ex)
{
throw ex;
}
}
 
6. (オプション)Microsoft実装を使用する場合は、builder.GetUpdateCommandメソッドを使用する必要があります。 Microsoftベースの実装からのサンプルコードを次に示します。
public DataSet TestUpdate()
{
CompositeConnection conn = GetConnection();
String queryString = "select * from products where ProductID in (1111)";
String tableName = "products";
CompositeDataAdapter adapter = new CompositeDataAdapter();
adapter.SelectCommand = new CompositeCommand(queryString, conn);
CompositeCommandBuilder builder = new CompositeCommandBuilder(adapter);
 
DataSet dataSet = new DataSet();
adapter.Fill(dataSet, tableName);
dataSet.Tables[0].Rows[0]["ProductName"] = "Discovery";
 
builder.GetUpdateCommand();
adapter.Update(dataSet, tableName);
return dataSet;
}