none
新加行为什么不能回滚? RRS feed

  • 问题

  • 用BindingNavigatoAddNewItem添加新行后,用ErpDataSet.RejectChanges()执行回滚操作,为什么不行?而其它修改或删除操作却可以回滚?
    2010年5月26日 1:35

答案

全部回复

  • 证明你已经 AcceptChange() 了
    2010年5月26日 5:33
  • 我也怀疑是这样,用的是BindingNavigatoAddNewItem的默认方法。
    2010年5月26日 5:38
  • 你没有写这样的方法不代表着别人或者 .Net Framework 没有背地里做。

    你可以试试单独地创建一个 DataSet,然后添加一行,跟着马上 Reject。就会发现时可以回滚的。

     

    ps: 查了一下 MSDN,既没有 BindingNavigatoAddNewItem 方法,也没有 BindingNavigator.AddNewItem 方法。那是你自己写的方法?

    2010年5月26日 6:06
  • 不是我自己写的,BindingNavigator控件有个AddNewItem按钮,它的Click事件,就是添加新记录的功能,我未重写,直接用的它的。

    2010年5月26日 9:00
  • 不是我自己写的,BindingNavigator控件有个AddNewItem按钮,它的Click事件,就是添加新记录的功能,我未重写,直接用的它的。


    那应该是在这个方法中就已经调用AcceptChange了
    I see you~http://hi.baidu.com/1987raymondMy Blog~~~
    2010年5月27日 4:25
    版主
  • 原因找到了,应该先执行  BindingSource.EndEdit(),再执行RejectChanges(),就可以回滚了!

    • 已标记为答案 大海怪 2010年5月27日 8:53
    2010年5月27日 8:52