HOW TO:檢查已變更的資料列
更新:2007 年 11 月
當資料集中的資料錄有變更時,在認可變更之前,會儲存這些變更的相關資訊。當呼叫資料集、資料表的 AcceptChanges 方法,或呼叫 TableAdapter 或資料配接器的 Update 方法時,變更便會被認可。
每個資料列中的變更是利用下列兩種方式追蹤的:
每個資料列都包含其 RowState 的相關資訊 (例如,Added、Modified、Deleted、Unchanged)。
每個已變更的資料列會包含可供存取的多個版本 (DataRowVersion):原始 (變更前) 和目前 (變更後) 版本。在暫止變更的這段期間 (您可在這時回應 RowChanging 事件),也會出現第三個版本 (建議版本) 供您使用。如需詳細資訊,請參閱 HOW TO:取得特定版本 DataRow。
判斷是否有變更的資料列
如果資料集中已有變更,則資料集的 HasChanges 方法會傳回 true。確認已變更資料列存在之後,您就可以呼叫 DataSet 或 DataTable 的 GetChanges 方法,傳回一組已變更的資料列。如需詳細資訊,請參閱 HOW TO:擷取已變更的資料列。
若要判斷任何資料列是否有任何變更
呼叫資料集的 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. }