在 .NET Framework 應用程式中將新的記錄插入資料庫中
若要在 .NET Framework 專案中使用 ADO.NET 將新記錄插入資料庫,常用方法是使用 TableAdapter 方法。 TableAdapters 可讓應用程式與資料庫之間進行通訊。 其提供不同的方式,將新記錄插入資料庫中,取決於應用程式的需求。 您可以使用 TableAdapter.Update
方法或其中一個 TableAdapter DBDirect 方法 (特別是 TableAdapter.Insert
方法)。
本文說明如何使用 Visual Basic (VB) 或 C#,將記錄插入使用 ADO.NET 和 .NET Framework 建置的應用程式資料庫。 如果您的應用程式設定使用 Entity Framework 6,請參閱將新實體新增至內容,如果是使用 Entity Framework Core,請參閱新增資料。
注意
資料集和相關類別是 2000 年代初的舊版 .NET Framework 技術,可讓應用程式在應用程式與資料庫中斷連線時使用記憶體中的資料。 這些技術特別適用於可讓使用者修改資料並將變更保存回資料庫的應用程式。 雖然已證明資料集是非常成功的技術,但建議新的 .NET 應用程式使用 Entity Framework Core。 Entity Framework 提供更自然的方式,將表格式資料作為物件模型使用,而且具有更簡單的程式設計介面。
必要條件
若要使用 TableAdapter 方法,您需要有可用的執行個體。 如需詳細資訊,請參閱在 .NET Framework 應用程式中建立和設定 TableAdapters。
.NET 安全性:您必須有權存取您嘗試連線的資料庫,以及執行插入至所需資料表的權限。
選擇插入方法
根據您的應用程式案例,可以使用不同方法將記錄插入資料庫。 下表總結了這些選項:
案例 | 方法 | 備註 |
---|---|---|
應用程式使用資料庫來儲存資料。 | 使用 TableAdapter.Update 方法將所有變更傳送至資料庫 | 變更包括更新、插入和刪除。 |
應用程式使用物件來儲存資料 | 使用 TableAdapter.Insert 方法將新記錄插入資料庫中 | 此方法可讓您更精確地控制建立新記錄。 |
應用程式使用 TableAdapters,Insert 方法無法使用 |
從 DataSet 設計工具將 TableAdapter GenerateDBDirectMethods 屬性設為 true 並儲存資料集以重新產生 TableAdapter |
如果您的 TableAdapter 沒有 Insert 方法,則 TableAdapter 設定為使用預存程序,或 GenerateDBDirectMethods 屬性設定為 false 。 如果重新產生 TableAdapter 後, Insert 方法仍無法使用,資料表可能未提供足夠的結構描述資訊來區分個別資料列 (例如,資料表上可能未設定主索引鍵)。 |
應用程式不會使用 TableAdapters | 使用命令物件將新記錄插入資料庫中 | 範例: SqlCommand |
使用 TableAdapters 插入新記錄
如果您的應用程式使用資料集來儲存資料,您可以將新記錄新增至資料集中所需的 DataTable,然後呼叫 TableAdapter.Update
方法。 TableAdapter.Update
方法會將 DataTable 中的任何變更傳送至資料庫 (包括已修改和刪除的記錄)。
使用 TableAdapter.Update 方法插入新記錄
下列程序示範如何使用 TableAdapter.Update
方法,將新記錄插入資料庫中:
將新的資料列新增至 DataTable 之後,呼叫
TableAdapter.Update
方法。 您可以傳遞下列其中一個參數值來控制要更新的資料量:下列程式碼展示如何將新記錄新增至 DataTable,然後呼叫
TableAdapter.Update
方法,將新的資料列儲存至資料庫。 此範例使用 Northwind 資料庫中的Region
資料表。// 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");
使用命令物件插入新記錄
您可以使用命令物件,直接將新記錄插入資料庫中。
- 建立新的命令物件,然後設定其
Connection
、CommandType
和CommandText
屬性。
下列程序示範如何使用命令物件,將記錄插入資料庫中。 此範例會將資料插入至 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();