在ADO.NET数据集中维护DataRowState - RejectChanges()方法不起作用?
问题简化了:
我有一个带有一些数据表的DataSet ......
我有一个Winforms DataGrid绑定到其中一个数据表。
用户通过DataGrid将一些行粘贴到所述数据表中,假设有3行;
所有这三行现在都有他们的RowState = DataRowState.Added。
我现在开始一个sqlserver事务。
然后调用dataAdapter1.Update(dataSet1)将行更新到SqlServer中。
第1行......好的
第2行......好的
第3行..在sqlserver级别的错误(通过设计我强制执行唯一索引)
检测到此错误后,我回滚sqlserver事务。
我还尝试使用Dataset1.RejectChanges()和/或Datatable1.RejectChanges()中的任何一个“回滚”数据表/数据集更改。
问题既不是.RejectChanges()也不是我设想的方式。我的数据表现在有两行(row1,row2),其RowState = DataRowState.Unchanged; row3完全消失了。
我想要发生的是,当我回滚sqlserver事务时,数据表中的所有3行在调用dataAdapter1.Update()方法之前保持在SAME STATE中。
(原因是用户可以查看绑定的DataGrid中的错误,采取纠正措施,然后再次尝试更新)。
任何人的想法?即我正在寻找相当于在ADO dataTable级别回滚状态的东西。
没有找到相关结果
已邀请:
2 个回复
脖呐
吠强祷豪硅