DeleteSelectedRows()不经过删除状态,数据源中去掉数据

winForm中DevExpress控件

昨天调用方法DevExpress.XtraGrid.Views.Grid.GridView.DeleteSelectedRows(),发现数据直接从数据源中删掉了,没有经历行的删除状态.

产生原因 : 绑定数据源之前对数据源表的数据行进行了操作,数据行的状态变成了DataRowState.Added;
解决方式 : 提交对数据源表的修改.DataTable.AcceptChanges(),行状态变成DataRowState.Unchanged.

测试代码

 

 DataTable dt = gC.DataSource as DataTable;
 this.gV.DeleteSelectedRows();
 DataTable dt2 = gC.DataSource as DataTable;
 this.DataChanged = true;
 正常情况下
调用DeleteSelectedRows()方法后,数据表的行数不会改变,只是状态变为DataViewRowState.Deleted
dt.Rows.Count
16
dt2.Rows.Count
16
异常状态,DataViewRowState.Added状态下直接删掉行
dt.Rows.Count
16
dt2.Rows.Count
15


总结:通过直接删掉DataViewRowState.Added状态的行,可以将对数据的新增及对应删除与数据的可视操作进行对应

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值