SqlConnection cn = DataBase.CreateSql();
DataTable dt=(DataTable)dgv.DataSouse
SqlDataAdapter da = new SqlDataAdapter("select * from salebook",cn);
SqlCommandBuilder builder = new SqlCommandBuilder(da);
da.Update(dt);
//dgv.Update();
DataTable dt=(DataTable)dgv.DataSouse
SqlDataAdapter da = new SqlDataAdapter("select * from salebook",cn);
SqlCommandBuilder builder = new SqlCommandBuilder(da);
da.Update(dt);
//dgv.Update();
在CellEndEdit事件里一样不能更新。请问一下是怎么回事。
SqlConnection cn = DataBase.CreateSql();
DataTable dt=(DataTable)dgv.DataSouse
SqlDataAdapter da = new SqlDataAdapter("select * from salebook",cn);
SqlCommandBuilder builder = new SqlCommandBuilder(da);
da.Update(dt);
我是说上面这段代码,发到CellEndEdit事件里就不能更新了。也不报错。
我要做到的是,单元格结束编辑就立即更新。
如果是另外放一个按钮用来更新,这段代码就可以实现了。
但是还有不解的地方,请各位帮忙解释一下。
DataTable dt = (DataTable)dgv.DataSource;//这样写是什么意思?
如果在CellEndEdit事件里必须加上da.UpdateCommand = builder.GetUpdateCommand();才可以执行,为什么?
但是数据库里的主键ID是1开始的自增长列。
现在更新的时候,总是要修改完下一个单元格才能提交上一个修改的值。
这个dt只是DataTable类的一个实例
da.Update(dt)
da拿到一个'空'的DataTable实例 它知道更新谁去?你可以这样写
DataTable dt = new DataTable();
da.Fill(dt);
DataTable dt=new DataTable();
SqlDataAdapter da = new SqlDataAdapter("select * from salebook",cn);
SqlCommandBuilder builder = new SqlCommandBuilder(da);
//da.Update(dt);
dgv.Update();
}