试试加上这句!
this.dataTable1.AcceptChanges();
this.dataTable1.AcceptChanges();
解决方案 »
- Metro C# 写文件的问题
- winform 滚动字幕实现思路。。怎么做?
- 有C#基础,推荐还学习什么其他语言
- C#中一个表部分字段增加到另一个表(求教)
- 求助:如何定义让PropertyGrid控件显示[...]按钮,并且点击后弹出需要的对话框
- 分布式事务
- 2000/11/12转换成日本日期格式(平成12年11月12日)的问题
- listview,toolbar 图片显示bug求救!
- 处理BLOB字段
- 200分求票据连续打印的问题,查看了csdn上的问题,好像大多都没有解决
- web应用程序中DropDownList的选值问题
- 做好了一个web应用程序,给个试用期,试用期过后就不能使用,怎么实现?
======================================
//在DataTable中删除选定行
this.dataTable1.Rows.RemoveAt(indexDel);
RemoveAt方法会把当前的记录从DataTable中直接移除,并不是修改RowState,
所以你使用DataAdapter.Update()进行更新的时候他并不知道DataTable中有一条记录被删除,
修改如下:
DataRowView drv = (DataRowView)this.BindingContext[this.dataGrid1.DataSource,
this.dataGrid1.DataMember].Current;
drv.Row.Delete();在使用 Delete 方法后,RowState 变成“已删除”。在您调用 AcceptChanges 之前,它一直保持“已删除”。调用DataAdapter.Update(dataTable);把当前改变了的记录更新到数据库(包括删除修改新增,由RowState来区分),
接着调用DataTable.AcceptChanges()修改DataTable的数据(前面的删除添加只是改变RowState,并没有真正的改变)。
如果是删除,到这一步就相当于执行了RemoveAt或RemoveAt的操作。
http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx