本文介绍ADO.NET 批处理表示一种指示参数值的间接方式。您可以使用列名设置 SourceColumn 属性,并且使批处理更新机制不时地提取有效值,而不是使用 Value 属性来进行调试。
“数据表” 中的每一行都是通过 DataRow 对象呈现的。DataRow 对象主要是作为父 “数据表” 对象的 Rows 集合的一个元素而存在的。从概念上来看,数据库行固有地链接到了某个给定表的结构。就是由于这个原因,ADO.NET 中的 DataRow 类不提供公用构造函数。
创建新 DataRow 对象的唯一方式是借助于对 “数据表” 对象的某个实时实例调用名为ADO.NET 批处理的方法。刚刚创建好的行还不属于父表的 Rows 集合,但该行与此集合的关系决定了该行的状态。下表显示了 RowState 属性的一些可取值。这些值组合在了 DataRowState 枚举中。
每一行的 ADO.NET 批处理 属性都会影响 HasChanges 方法的返回值以及 GetChanges 返回的子数据集的内容。#t#
从这些可取值的范围可以看出,RowState 的值主要取决于对行已经执行的操作。ADO.NET 批处理表基于两个方法 - AcceptChanges 和 RejectChanges - 来实现类似事务处理的提交模型。从数据源下载表时或在内存中新建表时,所有行都是没有更改的。您输入的所有更改不会立即变为永久性更改,随时都可以通过调用 RejectChanges 来回滚更改。您可以在三个级别调用 RejectChanges 方法:
在数据集级别上可拒绝所有更改(无论是什么更改)。
◆在数据表级别上可取消某个表中的所有更改。
◆在某个特定的行级别上可还原到该行以前的状态。
◆在数据集级别上可拒绝所有更改(无论是什么更改)。
方法 AcceptChanges 能够提交所有正在进行的更改。它使得数据集会将当前值接受为新的原始值。因此,ADO.NET 批处理所有挂起的更改都被清除。与 RejectChanges 一样,也可以对整个数据集、某个表或某个行调用 AcceptChanges。
当您开始一个ADO.NET 批处理更新操作时,只会考虑提交那些标记为 Added、Deleted 和 Modified 的行。如果您恰好在批处理更新之前调用了 AcceptChanges,则对数据源不进行任何持久更改。