C#.net で DataAdapter を使用しようとしています。それでも私は DataAdapter について何かを理解していません。
DataAdapter と DataReader に関する多くの記事とブログを読みました。
DataAdapter は、必要に応じてデータベースを自動的に開閉することを理解しました。
しかし、
//conn.Open();
AdsDataAdapter da;
da = new AdsDataAdapter("Select * from Test", conn);
AdsCommandBuilder cb;
cb = new AdsCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds, "Test");
DataRow newrow = ds.Tables["Test"].NewRow();
newrow["Name"] = "How about";
ds.Tables["Test"].Rows.Add(newrow);
da.Update(ds, "Test");
上記のコードを実行すると、「接続が開いている必要があります」というエラー メッセージが表示されます。
アダプタが接続を自動的に開けないのはなぜですか?
そして、insertCommand を使用してデータを挿入します (このテストでは、接続を開きました)。
da.InsertCommand = new AdsCommand("INSERT INTO test (NAME) values('Insert Test #1')", conn);
//da.InsertCommand.ExecuteNonQuery(); // it works
da.Update(ds,"Test"); //but it does not works.
Adapter.Update() を使用した多くの例ですが、私にとっては機能しません:(
エラーはなく、何も挿入されていません。
および da.InsertCommand.ExecuteNonQuery(); を使用します。Update() の代わりに動作します。
私は何を間違っていますか?
ありがとう!