zoukankan      html  css  js  c++  java
  • DataTable的AcceptChanges()和RejectChanges()方法

    一、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变成“Deleted”状态。在您调用AcceptChanges之前,它一直保持“Deleted”状态。可通过调用RejectChanges取消删除行。

    用于从DataTable对象中删除DataRow对象的方法有两种:DataRowCollection对象的Remove()方法和DataRow对象的Delete()方法。Rwmove()方法从DataRowCollection中删除DataRow,而Delete()方法只是将行的状态标记为删除,当应用程序调用AcceptChanges()方法时,才会发生实际的删除。通过使用Delete()方法,您可以在实际删除之前先以编程的方式检查哪些行标记为删除。

    在将 DataSet 或 DataTable 与 DataAdapter 和关系型数据源一起使用时,用 DataRow 的 Delete 方法移除行。Delete 方法只是在 DataSet 或 DataTable 中将行标记为 Deleted,而不会移除它。而 DataAdapter 在遇到标记为 Deleted 的行时,会执行其 DeleteCommand 方法以在数据源中删除该行。然后,就可以用 AcceptChanges 方法永久移除该行。如果使用 Remove 删除该行,则该行将从表中完全移除,但 DataAdapter 不会在数据源中删除该行。
  • 相关阅读:
    centos 7 快速安装 nload 流量工具
    centos 快速安装 fish
    OpenMetadata 开放标准的元数据服务
    xxljob 学习
    easy-rules facts 添加扩展数据
    easy-rules-centraldogma-spring-boot-starter 引入外部rule
    cube.js 基于queryRewrite 进行安全控制
    spring prototype bean 获取处理
    基于cloudevents+easy-rules+centraldogma 进行基于规则的业务开发
    mercurius 基于fastify 的graphql server 以及gateway 服务
  • 原文地址:https://www.cnblogs.com/dotnet261010/p/6681793.html
Copyright © 2011-2022 走看看