dataset中的数据编辑后,通过dataadapter更新到数据库了,现在发现有错误,数据库里的内容在事务没提交前可以回滚,可是dataset中的内容提交了就算完了,无法回滚
目前的方法只能提交前把整个dataset做个副本,需要回滚的时候再把副本中的内容复制回来,总感觉这种方法效率太低了

解决方案 »

  1.   

    dataset中有这个方法和acceptchangs()相对应!
    你查一下具体叫什么我想不起来了!
      

  2.   

    DataTable.RejectChanges 方法调用 RejectChanges 时,任何仍处于编辑模式的 DataRow 对象将取消其编辑。新行被移除。DataRowState 设置为 Modified 或 Deleted 的行返回到其初始状态。
      

  3.   

    用SqlTransaction,catch到异常时候Rollback,并且DataTable.RejectChanges,不好使么?
      

  4.   

    你可以用GetChanges()获取更改过的数据,把这些提交要是提交成功使用acceptchangs()来最终更改dataset的数据,要是没有成功则使用RejectChanges 来撤销修改!
      

  5.   

    关键是通过dataadapter执行update后,相应的datatable就自动acceptchanges了,想rejectchanges都不行
      

  6.   

    那就别用update了把dataadapter的insertCommand\,updateCommand,deleteCommand拿出来分别执行一下如何?
      

  7.   

    拿出来分别执行不是郁闷死了,而且我的dataadapter中的insertcommande、updatecommand会返回数据回写datatable的,拿出来自己控制不要烦死啊
      

  8.   

    恩,我没试过,不过如果是Rollback只Rollback update,而不Rollback acceptchanges,你只有DataTable.copy()了,如果要手动比较数据什么的,太麻烦了。