共用方式為


HOW TO:擷取已變更的資料列

更新:2007 年 11 月

資料表中的每一個資料列都有 RowState 屬性,這個屬性可追蹤使用 DataRowState 列舉型別值的資料列之目前狀態。您可以呼叫 DataSetDataTable 的 GetChanges 方法,從資料集或資料表傳回已變更的資料列。呼叫資料集的 HasChanges 方法,在呼叫 GetChanges 之前,可以先驗證變更存在。如需 HasChanges 的詳細資訊,請參閱 HOW TO:檢查已變更的資料列

注意事項:

當您認可資料集或資料表的變更 (藉由呼叫 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);
    }
    

請參閱

工作

HOW TO:檢查已變更的資料列

HOW TO:取得特定版本 DataRow

概念

顯示資料概觀

其他資源

連接至 Visual Studio 中的資料

準備您的應用程式以接收資料

將資料擷取至您的應用程式中

顯示 Windows 應用程式之表單上的資料

在您的應用程式中編輯資料

驗證資料

儲存資料