//初始化
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数据表呢?