• DataTable.AcceptChanges方法有何用处


    提交自上次调用 AcceptChanges 以来对该表进行的全部更改。

    调用 AcceptChanges 后,再用 DataAdapter.Update() 不会有不论什么新数据被更新到数据库中。那……那它有什么用处呢?

    曾经的做法:

    Fill –> Edit –>Update –> 又一次Fill –> Edit –> Update –> ……

    “更新了数据当然要又一次获取啦!”,再次更新后,再再次又一次获取。

    如今的做法:

    Fill –> Edit –> Update –> AcceptChanges –> Edit –> Update –> AcceptChanges –> Edit –> Update –> ……

    開始获取一次就好了,反正你更新了数据后再获取的不就是你刚才更新的吗,干嘛还要获取一遍呢?

    AcceptChanges 在 Update 后 !

    -----------------------------------------丑陋切割线-------------------------------------------------------------

    AcceptChanges()和RejectChanges() http://www.cnblogs.com/perfect/archive/2007/08/06/844634.html

    近期在园子里看了几篇相关的文章,总结了一下(还请多多指正):
    Delete()是面向对象状态操作的(能够回滚);RemoveAt()是面向普通集合操作的(不能够回滚,等价于先Delete()后AcceptChanges())

    DataTable.AcceptChanges方法
    提交自上次调用 AcceptChanges 以来对该表进行的全部更改。调用 AcceptChanges 时,不论什么仍处于编辑模式的 DataRow 对象将成功结束其编辑。DataRowState 也会随之更改:全部状态为 Added 和 Modified 的行的状态都变为 Unchanged;状态为 Deleted 的行则被移除。
    在您尝试使用 DbDataAdapter.Update 方法更新 DataSet 之后,一般会对 DataTable 调用 AcceptChanges 方法。 DataTable.RejectChanges方法
    回滚自该表载入以来或上次调用 AcceptChanges 以来对该表进行的全部更改。
    调用 RejectChanges 时,不论什么仍处于编辑模式的 DataRow 对象将取消其编辑。新行被移除。DataRowState 设置为 Modified 或 Deleted 的行返回到其初始状态。 使用 Delete 方法后,RowState 变成“已删除”。在您调用 AcceptChanges 之前,它一直保持“已删除”。可通过调用 RejectChanges 取消删除行。 而RemoveAt表示当移除行时,该行中的全部数据都将丢失。您还能够调用 DataRow 类的 Delete 方法来标记某行以供移除。调用 RemoveAt 等同于先调用 Delete 再调用 AcceptChanges。 也就是说使用Delete()方法删除行后是能够回滚的,而使用RemoveAt(int)方法是不能回滚的。 总结:
    1、Delete()之前接收了AcceptChanges()后,都仅仅加上删除标记,以后再次接受了AcceptChanges()后才真正删除,否则没有再次接受AcceptChanges()遇到RejectChanges()能够回滚
    2、Delete()之前没有接收AcceptChanges(),之后马上接受AcceptChanges(),也真正删除
    3、Delete()之前没有接收AcceptChanges(),之后也没马上接受AcceptChanges(),会彻底删除:由于没有必要回滚

  • 相关阅读:
    Open source cryptocurrency exchange
    Salted Password Hashing
    95. Unique Binary Search Trees II
    714. Best Time to Buy and Sell Stock with Transaction Fee
    680. Valid Palindrome II
    Java compiler level does not match the version of the installed Java project facet.
    eclipse自动编译
    Exception in thread "main" java.lang.StackOverflowError(栈溢出)
    博客背景美化——动态雪花飘落
    java九九乘法表
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4222543.html
Copyright © 2020-2023  润新知