如何:擷取已變更的資料列
資料表中的每一個資料列都有 RowState 屬性,這個屬性可追蹤使用 DataRowState 列舉型別值的資料列之目前狀態。 您可以呼叫 DataSet 或 DataTable 的 GetChanges 方法,從資料集或資料表傳回已變更的資料列。 呼叫資料集的 HasChanges 方法,在呼叫 GetChanges 之前,可以先驗證變更存在。 如需 HasChanges 的詳細資訊,請參閱 如何:檢查已變更的資料列。
注意事項 |
---|
當您認可資料集或資料表的變更 (藉由呼叫 AcceptChanges 方法) 之後,GetChanges 方法將不會傳回任何資料。如果應用程式需要處理已變更的資料列,您必須先執行此作業,然後再呼叫 AcceptChanges 方法。 |
呼叫資料集或資料表的 GetChanges 方法,會傳回只包含已變更資料錄的新資料集或資料表。 如果您只要特定資料錄,例如,僅新資料錄或僅修改的資料錄,則可以將 DataRowState 列舉型別的值當做參數傳遞至 GetChanges 方法。
使用 DataRowVersion 列舉型別來存取不同版本的資料列 (例如,您可能會想要先檢查資料列中的原始值之後,再進行處理)。
若要取得資料集中的所有已變更之資料錄
呼叫資料集的 GetChanges 方法。
以下範例將建立名為 changedRecords 的新資料集,並在其中填入從名為 dataSet1 的另一資料集取得的所有變更資料錄。
Dim changedRecords As DataSet = DataSet1.GetChanges()
DataSet changedRecords = dataSet1.GetChanges();
若要取得資料表中的所有已變更之資料錄
呼叫 DataTable 的 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); }
請參閱
工作
概念
將 Windows Form 控制項繫結至 Visual Studio 中的資料