如何:检索已更改的行
数据表中的每行都有一个 RowState 属性,该属性使用 DataRowState 枚举中的值跟踪该行的当前状态。 通过调用 DataSet 或 DataTable 的 GetChanges 方法,可以从数据集或数据表返回已更改的行。 在调用 GetChanges 之前,可以通过调用数据集的 HasChanges 方法确认是否存在更改。 有关 HasChanges 的更多信息,请参见 如何:检查已更改的行:
提示
在提交对数据集或数据表的更改(通过调用 AcceptChanges 方法)后,GetChanges 方法将不返回数据。 如果应用程序需要处理已更改的行,则必须在调用 AcceptChanges 方法之前进行处理。
调用数据集或数据表的 GetChanges 方法将返回只包含已更改记录的新数据集或数据表。 如果只需获取特定的记录(例如,只是新记录或已修改的记录),则可以将值作为参数从 DataRowState 枚举传递给 GetChanges 方法。
使用 DataRowVersion 枚举访问行的不同版本(例如,可能希望在处理某行之前检查该行中的原始值)。
获取数据集中所有已更改的记录
调用数据集的 GetChanges 方法。
下面的示例创建一个名为 changedRecords 的新数据集,并且用另一个名为 dataSet1 的数据集中所有已更改的记录对其进行填充。
Dim changedRecords As DataSet = DataSet1.GetChanges()
DataSet changedRecords = dataSet1.GetChanges();
获取数据表中所有已更改的记录
调用数据表的 GetChanges 方法。
下面的示例创建一个名为 changedRecordsTable 的新数据表,并且用另一个名为 dataTable1 的数据表中所有已更改的记录对其进行填充。
Dim changedRecordsTable As DataTable = dataTable1.GetChanges()
DataTable changedRecordsTable = dataTable1.GetChanges();
获取具有特定行状态的所有记录
调用数据集或数据表的 GetChanges 方法并将 DataRowState 枚举值当作参数进行传递。
下面的示例显示如何创建名为 addedRecords 的新数据集,并且只用已添加到 dataSet1 数据集的记录对其进行填充。
Dim addedRecords As DataSet = DataSet1.GetChanges(DataRowState.Added)
DataSet addedRecords = dataSet1.GetChanges(DataRowState.Added);
下面的示例演示如何返回最近添加到 Customers 表的所有记录:
Private Function GetNewRecords() As NorthwindDataSet.CustomersDataTable Return CType(NorthwindDataSet1.Customers.GetChanges(Data.DataRowState.Added), NorthwindDataSet.CustomersDataTable) End Function
private NorthwindDataSet.CustomersDataTable GetNewRecords() { return (NorthwindDataSet.CustomersDataTable) northwindDataSet1.Customers.GetChanges(DataRowState.Added); }
请参见
任务
概念
在 Visual Studio 中将 Windows 窗体控件绑定到数据