在 .NET Framework 應用程式中使用 TableAdapter 更新資料

注意

資料集和相關類別是 2000 年代初的舊版 .NET Framework 技術,可讓應用程式在應用程式與資料庫中斷連線時使用記憶體中的資料。 它們特別適用於可讓使用者修改資料並將變更保存回資料庫的應用程式。 雖然已證明資料集是非常成功的技術,但建議新的 .NET 應用程式使用 Entity Framework Core。 Entity Framework 提供更自然的方式,將表格式資料作為物件模型使用,而且具有更簡單的程式設計介面。

資料集中的資料經過修改和驗證後,可以透過呼叫 TableAdapterUpdate 方法將更新後的資料傳送回資料庫。 Update 方法更新單一資料表,並根據資料表中每個資料列的 RowState 執行正確的命令 (INSERTUPDATEDELETE)。 當資料集具有相關資料表時,Visual Studio 會產生 TableAdapterManager 類,用於進行更新。 TableAdapterManager 類確保根據資料庫中定義的外部索引鍵限制式以正確的順序進行更新。 當您使用資料繫結控制項時,資料繫結結構會建立 TableAdapterManager 類的名為 tableAdapterManager 的成員變數。

注意

當您嘗試使用資料集的內容更新資料來源時,可能會發生錯誤。 為了避免錯誤,我們建議您將呼叫配接器的 Update 方法之程式碼放至 try/catch 區塊中。

更新資料來源的確切程序可能因業務需要而異,但包括以下步驟:

  1. try/catch 區塊中呼叫配接器的 Update 方法。

  2. 如果攔截到例外狀況,請尋找導致錯誤的資料列。

  3. 協調資料列中的問題 (如果可以的話,可以透過程式設計方式解决,或者將無效列提交給使用者進行修改),然後重試更新 (HasErrorsGetErrors)。

將資料儲存至資料庫

呼叫 TableAdapter 的 Update 方法。 傳遞包含要寫入資料庫之值的資料表的名稱。

使用 TableAdapter 更新資料庫

  • 將 TableAdapter 的 Update 方法括在 try/catch 區塊中。 以下範例顯示如何從 try/catch 區塊中更新 NorthwindDataSetCustomers 資料表的內容。

    try
    {
        this.Validate();
        this.customersBindingSource.EndEdit();
        this.customersTableAdapter.Update(this.northwindDataSet.Customers);
        MessageBox.Show("Update successful");
    }
    catch (System.Exception ex)
    {
        MessageBox.Show("Update failed");
    }