共用方式為


使用 .NET Framework 應用程式中的 TableAdapter DBDirect 方法儲存資料

注意

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

此教學課程會提供詳細的指示,說明如何透過使用 TableAdapter 的 DBDirect 方法,直接對資料庫執行 SQL 陳述式。 TableAdapter 的 DBDirect 方法可讓您妥善控制您的資料庫更新。 您可以使用它們來執行特定 SQL 陳述式和預存程序,方法是根據應用程式的需求呼叫個別 InsertUpdateDelete 方法 (而不是在一次呼叫中執行 UPDATEINSERTDELETE 陳述式的多載 Update 方法)。

在本教學課程期間,您將了解如何:

必要條件

本教學課程中的步驟適用於 .NET Framework Windows Forms 應用程式。

本教學課程會使用 SQL Server Express LocalDB 和 Northwind 範例資料庫。

  1. 如果您沒有 SQL Server Express LocalDB,請從 SQL Server Express 下載頁面或透過 Visual Studio 安裝程式進行安裝。 在 Visual Studio 安裝程式中,您可以將 SQL Server Express LocalDB 安裝為資料儲存和處理工作負載的一部分,或安裝為個別元件。

  2. 請遵循下列步驟安裝 Northwind 範例資料庫:

    1. 在 Visual Studio 中,開啟 [SQL Server 物件總管] 視窗。 (SQL Server 物件總管會安裝為 Visual Studio 安裝程式中資料儲存和處理工作負載的一部分。)展開 [SQL Server] 節點。 以滑鼠右鍵按一下您的 LocalDB 執行個體,然後選取 [新增查詢]

      查詢編輯器視窗會隨即開啟。

    2. Northwind Transact-SQL 指令碼複製到剪貼簿。 此 T-SQL 指令碼會從頭開始建立 Northwind 資料庫,並將資料填入其中。

    3. 將 T-SQL 指令碼貼入查詢編輯器中,然後選擇 [執行] 按鈕。

      查詢很快就會完成執行,並建立 Northwind 資料庫。

建立 Windows Forms 應用程式

第一步是建立 Windows Forms 應用程式 (.NET Framework)。 使用 C# 或 Visual Basic,使用 Windows Forms 應用程式專案類型建立專案。

注意

本教學課程的程式碼適用於 C# 和 Visual Basic。 若要在 C# 和 Visual Basic 之間切換此頁面上的程式碼語言,請使用頁面頂端右側的程式碼語言切換器。

從您的資料庫建立資料來源

此步驟使用 [資料來源組態精靈],根據 Northwind 範例資料庫中的 Region 資料表建立資料來源。 您必須具有 Northwind 範例資料庫的存取權,才能建立連接。 如需設定 Northwind 範例資料庫的相關資訊,請參閱如何:安裝範例資料庫

若要建立資料來源

  1. [資料] 功能表上,選取 [顯示資料來源]

    [資料來源] 視窗隨即開啟。

  2. 在 [資料來源] 視窗中,選取 [新增新資料來源],以啟動 [資料來源組態精靈]

  3. [選擇資料來源類型] 畫面上選取 [資料庫],然後選取 [下一步]

  4. [選擇您的資料連線] 畫面上,執行下列其中一項:

    • 如果下拉式清單中有提供 Northwind 範例資料庫的資料連線,請選取這個資料連線。

      -或-

    • 選取 [新增連線] 啟動 [新增/修改連線] 對話方塊。

  5. 如果資料庫需要密碼,請選取選項來加入敏感性資料,然後選取 [下一步]

  6. [將連接字串儲存至應用程式組態檔] 畫面上,選取 [下一步]

  7. 展開 [選擇您的資料庫物件] 畫面上的 [資料表] 節點。

  8. 選取 Region 資料表,然後選取 [完成]

    NorthwindDataSet 隨即會新增至您的專案,且 Region 資料表會出現在 [資料來源] 視窗中。

將控制項新增至表單以顯示資料

從 [資料來源] 視窗將項目拖曳至表單,以建立資料繫結控制項。

若要在 Windows 表單上建立資料繫結控制項,請將主要 [區域] 節點從 [資料來源] 視窗拖曳至表單上。

DataGridView 控制項以及巡覽記錄的工具區域 (BindingNavigator) 會出現在表單上。 NorthwindDataSetRegionTableAdapterBindingSourceBindingNavigator 顯示在元件匣中。

加入會呼叫個別 TableAdapter DbDirect 方法的按鈕

  1. 從 [工具箱] 將三個 Button 控制項拖曳至 Form1 (位於 RegionDataGridView 下方)。

  2. 在每個按鈕上,設定下列 [名稱] 及 [文字] 屬性。

    名稱 Text
    InsertButton 插入
    UpdateButton 更新
    DeleteButton 刪除

加入程式碼以將新記錄插入至資料庫

  1. 選取 [InsertButton] 為按一下事件建立事件處理常式,並在程式碼編輯器中開啟表單。

  2. 以下列程式碼取代 InsertButton_Click 事件處理常式:

    private void InsertButton_Click(object sender, EventArgs e)
    {
        Int32 newRegionID = 5;
        String newRegionDescription = "NorthEastern";
    
        try
        {
            regionTableAdapter1.Insert(newRegionID, newRegionDescription);
        }
        catch (Exception ex)
        {
            MessageBox.Show("Insert Failed");
        }
        RefreshDataset();
    }
    
    
    private void RefreshDataset()
    {
        this.regionTableAdapter1.Fill(this.northwindDataSet1.Region);
    }
    

    注意

    根據您的 Visual Studio 版本和您使用的專案範本,此程式碼中使用的變數名稱 (如 regionTableAdapterregionTableAdapter1) 在產生的程式碼中可能有也可能沒有後置 1。 對程式碼進行任何修正,以確保在任何地方都使用正確的名稱。 Visual Studio 在名稱不正確的地方顯示紅色波浪線。

加入程式碼以更新資料庫中的記錄

  1. 按兩下 [UpdateButton] 建立 Click 事件的事件處理常式,並在程式碼編輯器中開啟表單。

  2. 以下列程式碼取代 UpdateButton_Click 事件處理常式:

    private void UpdateButton_Click(object sender, EventArgs e)
    {
        Int32 newRegionID = 5;
        
        try
        {
            regionTableAdapter1.Update(newRegionID, "Updated Region Description", 5, "NorthEastern");
        }
        catch (Exception ex)
        {
            MessageBox.Show("Update Failed");
        }
        RefreshDataset();
    }
    

加入程式碼以從資料庫刪除記錄

  1. 選取 [DeleteButton] 為按一下事件建立事件處理常式,並在程式碼編輯器中開啟表單。

  2. 以下列程式碼取代 DeleteButton_Click 事件處理常式:

    private void DeleteButton_Click(object sender, EventArgs e)
    {
        try
        {
            regionTableAdapter1.Delete(5, "Updated Region Description");
        }
        catch (Exception ex)
        {
            MessageBox.Show("Delete Failed");
        }
        RefreshDataset();
    }
    

執行應用程式

  • 選取 F5 執行應用程式。

  • 選取 [插入] 按鈕,並確認新記錄是否出現在資料格中。

  • 選取 [更新] 按鈕,並確認資料格中是否有更新記錄。

  • 選取 [刪除] 按鈕,並確認是否從資料格刪除記錄。

下一步

根據應用程式的需求,在建立資料繫結程序表單後,可能會有幾個想要執行的步驟。 一些您可以加強這個教學課程的部分包括:

  • 將搜尋功能加入至表單。

  • 在 [資料來源] 視窗中選取 [使用精靈設定資料集],將其他資料表新增至資料集。 您可以藉由將關聯節點拖曳至表單,加入顯示關聯資料的控制項。 如需詳細資訊,請參閱資料集中的關聯性