我尝试在 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(),它可以工作。
我究竟做错了什么?
谢谢!