我想用SqlDataAdapter在數據庫中插入一行。我在CustomerOrders數據庫中有兩個表格(Custormers & Orders),並有超過一千條記錄。我想創建一個圖形用戶界面(文本框),用於將新客戶&訂單添加到數據庫到其各自的表中。使用SqlDataAdapter插入一行
- 我應該怎麼做?
我想這通常是跟着方法
dataAdapter = new SqlDataAdapter (sqlQuery, conn);
dataSet = new DataSet();
da.Fill(dataSet);
現在把這些值從文本框(或使用數據綁定)來添加一個新行到DataSet,並調用
da.Update(dataSet);
但問題是爲什麼我應該首先使用da.Fill(dataSet)將所有其他記錄提取到dataSet中?我只想添加一個新的記錄。
爲此,我正在做的是在DataSet中創建數據庫的模式。像這樣:
DataSet customerOrders = new DataSet("CustomerOrders");
DataTable customers = customerOrders.Tables.Add("Customers");
DataTable orders = customerOrders.Tables.Add("Orders");
customers.Columns.Add("CustomerID", Type.GetType("System.Int32"));
customers.Columns.Add("FirstName", Type.GetType("System.String"));
customers.Columns.Add("LastName", Type.GetType("System.String"));
customers.Columns.Add("Phone", Type.GetType("System.String"));
customers.Columns.Add("Email", Type.GetType("System.String"));
orders.Columns.Add("CustomerID", Type.GetType("System.Int32"));
orders.Columns.Add("OrderID", Type.GetType("System.Int32"));
orders.Columns.Add("OrderAmount", Type.GetType("System.Double"));
orders.Columns.Add("OrderDate", Type.GetType("System.DateTime"));
customerOrders.Relations.Add("Cust_Order_Rel", customerOrders.Tables["Customers"].Columns["CustomerID"], customerOrders.Tables["Orders"].Columns["CustomerID"]);
我使用DataBinding將這些列綁定到相應的文本框。 現在我很困惑!接下來我應該做什麼?如何使用插入命令?因爲我沒有給任何dataAdapter.SelectCommand所以dataAdapter.Update()不會工作我猜。請建議一個正確的方法。
「WHERE 0 = 1」是救生員。 (將2GB的媒體表加載到內存中......嘆息..) – pkExec 2013-01-14 09:50:45
我對'new SqlCommandBuilder(dataAdapter)'這行感興趣 - '這讓一些奇蹟發生了,所以我不必編寫整個INSERT聲明。謝謝! – 2015-03-02 10:34:19
dataSet.Tables [「Customers」] .Add(newRow);不編譯。 「System.Data.DataTable不包含'Add'的定義。你的意思是dataSet.Tables [tableName] .Rows.Add(newRow);? – 2015-08-14 04:56:00