问题描述
- 数据适配器adapter同条件下第二次fill出空表是为何
-
//初始化 sql = "select * from test1"; con= new MySqlConnection("Server=localhost;Database=test; User=root;Password=password"); cmd = new MySqlCommand(sql, con); testadapter=new MySqlDataAdapter(cmd); //新建datatable DataTable table1 = new DataTable("test1table"); //fill datatable testadapter.Fill(table1); //新建命令生成器 MySqlCommandBuilder testcmdbuilder = new MySqlCommandBuilder(testadapter); //给table1增加新行 DataRow r = table1.NewRow(); table1.Rows.Add(r); //更新数据库 testadapter.Update(table1);
这段代码在一个按钮事件处理函数中,第一次点击按钮运行本段代码,table1从数据库中fill成功出数据,第二次点击按钮后,table1重新new了一下,fill不成功,table1是空表,但是没有报错也没有异常 为何啊
最后发现是给table1新加行newrow出的问题,但是为什么第一次运行代码添加新行成功后第二次fill就是空表呢
调试后进一步发现是MySqlCommandBuilder的问题,注释掉MySqlCommandBuilder语句后,多次fill成功.为什么加入MySqlCommandBuilder会影响后续fill数据表呢?
解决方案
单步调试下,是不是没有数据造成的。
时间: 2024-11-01 18:31:16