Share via


在 .NET Framework 應用程式中將新的記錄插入資料庫中

注意

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

若要將新記錄插入至 .NET Framework 專案中具有 ADO.NET 的資料庫,您可以使用 TableAdapter.Update 方法或 TableAdapter 的其中一種 DBDirect 方法 (特別是 TableAdapter.Insert 方法)。 如需詳細資訊,請參閱 TableAdapter

如果您的應用程式未使用 TableAdapters,您可以使用命令物件 (例如 SqlCommand),在資料庫中插入新記錄。

如果您的應用程式使用資料集來儲存資料,請使用 TableAdapter.Update 方法。 Update 方法會將所有變更 (更新、插入和刪除) 傳送至資料庫。

如果您的應用程式使用物件來儲存資料,或如果您想要更精細地控制在資料庫中建立新記錄,請使用 TableAdapter.Insert 方法。

如果您的 TableAdapter 沒有 Insert 方法,其表示 TableAdapter 設定為使用預存程序,或其 GenerateDBDirectMethods 屬性設定為 false。 嘗試從 [資料集設計工具] 內將 TableAdapter 的 GenerateDBDirectMethods 屬性設定為 true,然後儲存資料集。 此動作會重新產生 TableAdapter。 如果 TableAdapter 仍然沒有 Insert 方法,資料表可能未提供足夠的結構描述資訊來區分個別資料列 (例如,資料表上可能未設定主索引鍵)。

注意

本文適用於 ADO.NET 和 .NET Framework 開發。 對於使用 Entity Framework 6 的相同工作,請參閱將新實體新增至內容。 對於 Entity Framework Core,請參閱新增資料

使用 TableAdapters 插入新記錄

TableAdapters 會提供不同的方式,將新記錄插入資料庫中,取決於應用程式的需求。

如果您的應用程式使用資料集來儲存資料,您可以將新記錄新增至資料集中所需的 DataTable,然後呼叫 TableAdapter.Update 方法。 TableAdapter.Update 方法會將 DataTable 中的任何變更傳送至資料庫 (包括已修改和刪除的記錄)。

使用 TableAdapter.Update 方法將新記錄插入資料庫中

  1. 藉由建立新的 DataRow 並將其新增至 Rows 集合,以將新記錄新增至所需的 DataTable

  2. 將新的資料列新增至 DataTable 之後,呼叫 TableAdapter.Update 方法。 您可以藉由傳入整個 DataSet、一個 DataTableDataRow 的陣列或單一 DataRow,來控制要更新的資料量。

    下列程式碼展示如何將新記錄新增至 DataTable,然後呼叫 TableAdapter.Update 方法,將新的資料列儲存至資料庫。 (此範例會使用 Region Northwind 資料庫中的資料表。)

    // Create a new row.
    NorthwindDataSet.RegionRow newRegionRow;
    newRegionRow = northwindDataSet.Region.NewRegionRow();
    newRegionRow.RegionID = 5;
    newRegionRow.RegionDescription = "NorthWestern";
    
    // Add the row to the Region table
    this.northwindDataSet.Region.Rows.Add(newRegionRow);
    
    // Save the new row to the database
    this.regionTableAdapter.Update(this.northwindDataSet.Region);
    

使用 TableAdapter.Insert 方法將新記錄插入資料庫中

如果您的應用程式使用物件來儲存資料,您可以使用 TableAdapter.Insert 方法,直接在資料庫中建立新的資料列。 Insert 方法會接受每個資料行的個別值做為參數。 呼叫此方法會使用傳入的參數值,將新記錄插入資料庫中。

  • 呼叫 TableAdapter 的 Insert 方法,以參數的形式傳入每個資料行的值。

下列程序示範使用 TableAdapter.Insert 方法插入資料列。 此範例會將資料 Region 插入至 Northwind 資料庫中的資料表。

注意

如果您沒有可用的執行個體,請具現化您想要使用的 TableAdapter。

NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
    new NorthwindDataSetTableAdapters.RegionTableAdapter();

regionTableAdapter.Insert(5, "NorthWestern");

使用命令物件插入新記錄

您可以使用命令物件,直接將新記錄插入資料庫中。

使用命令物件將新記錄插入資料庫中

  • 建立新的命令物件,然後設定其 ConnectionCommandTypeCommandText 屬性。

下列範例示範使用命令物件將記錄插入資料庫中。 其會將資料插入至 Northwind 資料庫中的 Region 資料表。

System.Data.SqlClient.SqlConnection sqlConnection1 = 
    new System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING");

System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "INSERT Region (RegionID, RegionDescription) VALUES (5, 'NorthWestern')";
cmd.Connection = sqlConnection1;

sqlConnection1.Open();
cmd.ExecuteNonQuery();
sqlConnection1.Close();

.NET 安全性

您必須有權存取您嘗試連線的資料庫,以及執行插入至所需資料表的權限。