如何:检索已更改的行
数据表中的每行都有一个 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 窗体控件绑定到数据