共用方式為


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

備註

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

本教學課程提供使用 TableAdapter 的 DBDirect 方法,直接對資料庫執行 SQL 語句的詳細指示。 TableAdapter 的 DBDirect 方法可提供對資料庫更新的精細控制層級。 您可以視需要呼叫應用程式所需的個別 InsertUpdateDelete 方法,使用這些方法來執行特定的 SQL 語句和預存程序(而不是使用多載的 Update 方法,在一次呼叫中執行 UPDATEINSERTDELETE 語句)。

在本教學課程中,您將瞭解如何:

  • 使用 [數據源組態精靈] 建立及設定數據集。

  • 從 [數據來源] 視窗拖曳項目時,選取要在表單上建立的控制項。 如需詳細資訊,請參閱 從 [數據源] 視窗拖曳時設定要建立的控件

  • 將專案從 [數據源 ] 視窗拖曳至窗體,以建立數據綁定窗體。

  • 新增方法以直接存取資料庫,並執行插入、更新和刪除。

先決條件

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

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

  1. 如果您沒有 SQL Server Express LocalDB,請從 SQL Server Express 下載頁面或透過 Visual Studio 安裝程式進行安裝。 在 Visual Studio Installer中,您可以將 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 App 專案類型建立專案。

備註

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

從資料庫建立數據源

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

建立數據源

  1. 在 [ 數據] 功能表上,選取 [顯示數據源]。

    [ 數據源] 視窗隨即開啟。

  2. 在 [ 數據源] 視窗中,選取 [ 新增數據源 ] 以啟動 [數據源設定精靈]。

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

  4. 在 [ 選擇您的數據連線 ] 畫面上,執行下列其中一項動作:

    • 如果下拉式清單中有 Northwind 範例資料庫的數據連線可用,請選取它。

      -或-

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

  5. 如果您的資料庫需要密碼,請選取包含敏感數據的選項,然後選取 [ 下一步]。

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

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

  8. 選取Region表格,然後選取 [完成]。

    NorthwindDataSet 會新增至您的專案,而Region數據表會出現在 [數據源] 視窗中。

將控件新增至表單以顯示數據

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

若要在 Windows 窗體上建立數據綁定控件,請將主要 [區域] 節點從 [數據源 ] 視窗拖曳到窗體上。

DataGridView用於巡覽記錄的控制項和工具區 (BindingNavigator) 會出現在表單上。 NorthwindDataSetRegionTableAdapterBindingSourceBindingNavigator 會出現在元件匣中。

若要新增將呼叫個別 TableAdapter DbDirect 方法的按鈕

  1. 將三 Button 個控件從 工具箱 拖曳到 Form1RegionDataGridView 下方)。

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

    名稱 文字
    InsertButton 插入
    UpdateButton 更新
    DeleteButton 刪除

若要新增程式代碼以將新記錄插入資料庫中

  1. 選取 InsertButton 以建立 Click 事件的事件處理程式,並在程式碼編輯器中開啟您的表單。

  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 以建立 Click 事件的事件處理程式,並在程式碼編輯器中開啟您的表單。

  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 以執行應用程式。

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

  • 選取 [ 更新] 按鈕,並確認記錄已在方格中更新。

  • 選取 [ 刪除] 按鈕,並確認記錄已從方格中移除。

後續步驟

根據您的應用程式需求,建立數據系結窗體之後,您可能會想要執行幾個步驟。 您可以對本教學課程進行一些增強功能,包括:

  • 將搜尋功能新增至表單。

  • 從 [數據源] 視窗中選取 [使用精靈設定數據集],將其他數據表新增至數據集。 您可以將相關節點拖曳至窗體,以新增顯示相關數據的控件。 如需詳細資訊,請參閱 數據集中的關聯性