若要將新記錄插入 .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,請參閱 新增數據。
備註
類別 DataSet 和相關類別是 2000 年代初的舊版 .NET Framework 技術,可讓應用程式在應用程式與資料庫中斷連線時使用記憶體中的數據。 這些技術特別適用於可讓使用者修改數據並將變更保存回資料庫的應用程式。 雖然數據集是經過證實的成功技術,但新 .NET 應用程式的建議方法是使用 Entity Framework Core。 Entity Framework 提供更自然的方式,以表格式數據作為物件模型使用,而且具有更簡單的程序設計介面。
先決條件
若要使用 TableAdapter 方法,您需要有可用的實例。 如需詳細資訊,請參閱 在 .NET Framework 應用程式中建立及設定 TableAdapters。
.NET 安全性:您必須能夠存取您嘗試連線的資料庫,以及具有在指定資料表中執行插入操作的許可權。
選擇插入方法
根據您的應用程式案例,將記錄插入資料庫的方法有不同。 下表摘要說明選項:
| 情境 | 方法 | 註釋 |
|---|---|---|
| 應用程式會使用 資料集 來儲存數據 | 使用 TableAdapter.Update 方法將所有變更傳送至資料庫 | 變更包括更新、插入和刪除。 |
| 應用程式會使用 對象 來儲存資料 | 使用 TableAdapter.Insert 方法將新記錄插入資料庫中 | 此方法可讓您更精細地控制建立新記錄。 |
應用程式使用 TableAdapters,Insert 方法不可用 |
將 TableAdapter GenerateDBDirectMethods 屬性從資料集設計工具內設定為 true ,並儲存資料集以重新產生 TableAdapter |
如果您的 TableAdapter 沒有 Insert 方法,則可能是 TableAdapter 設定為使用預存程序,或者將 GenerateDBDirectMethods 屬性設定為 false。 Insert如果方法在重新產生 TableAdapter 之後仍然無法使用,則數據表可能未提供足夠的架構資訊來區分個別數據列(例如,數據表上可能沒有設定主鍵)。 |
| 應用程式不使用 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 方法來插入數據列。 此範例會將資料插入 Northwind 資料庫中的 Region 資料表。
備註
如果您沒有可用的實例,請具現化您想要使用的 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();