如何:检查已更改的行
当对数据集中的记录进行更改时,有关这些更改的信息会被存储起来,直到您提交这些更改。 在调用数据集或数据表的 AcceptChanges 方法,或是调用 TableAdapter 或数据适配器的 Update 方法时,更改被提交。
以两种方式在每个数据行中跟踪更改:
每个数据行都包含关于其 RowState 的信息(例如,Added、Modified、Deleted、Unchanged)。
每个更改的数据行都包含此行 (DataRowVersion) 的多个版本:原始版本(更改前)和当前版本(更改后)。这些版本都可以访问。 在更改处于待定状态的一段时间内(此时可以对 RowChanging 事件作出响应),还会提供第三个版本(建议版本)。 有关更多信息,请参见 如何:获取 DataRow 的特定版本。
确定是否存在已更改的行
如果已在数据集中进行了更改,数据集的 HasChanges 方法将返回 true。 确定存在更改的行,您可以调用 DataSet 或 DataTable 的 GetChanges 方法返回更改的一组数据行。 有关更多信息,请参见 如何:检索已更改的行。
确定是否对任何行进行了更改
调用数据集的 HasChanges 方法来检查已更改的行。
下面的示例演示如何检查 HasChanges 方法的返回值,以检测名为 NorthwindDataset1 的数据集中是否存在已更改的行。
If NorthwindDataSet1.HasChanges() Then ' Changed rows were detected, add appropriate code. Else ' No changed rows were detected, add appropriate code. End If
if (northwindDataSet1.HasChanges()) { // Changed rows were detected, add appropriate code. } else { // No changed rows were detected, add appropriate code. }
确定更改的类型
还可以通过将 DataRowState 枚举的值传递给 HasChanges 方法,以检查在数据集中进行了何种类型的更改。
确定对行进行了何种类型的更改
将 DataRowState 值传递给 HasChanges 方法。
下面的示例显示如何检查名为 NorthwindDataset1 的数据集,以确定是否向其添加了任何新行:
If NorthwindDataSet1.HasChanges(DataRowState.Added) Then ' New rows have been added to the dataset, add appropriate code. Else ' No new rows have been added to the dataset, add appropriate code. End If
if (northwindDataSet1.HasChanges(DataRowState.Added)) { // New rows have been added to the dataset, add appropriate code. } else { // No new rows have been added to the dataset, add appropriate code. }
请参见
概念
Visual Studio 2012 中针对数据应用程序开发的新增功能
在 Visual Studio 中将 Windows 窗体控件绑定到数据