Tôi muốn chèn một hàng vào Cơ sở dữ liệu bằng SqlDataAdapter. Tôi đã có 2 bảng (Custormers & Orders) trong cơ sở dữ liệu CustomerOrders và có hơn nghìn bản ghi. Tôi muốn tạo một GUI (TextBoxes) để thêm khách hàng mới & các đơn đặt hàng vào Cơ sở dữ liệu cho các bảng tương ứng của họ.Sử dụng SqlDataAdapter để chèn một hàng
- Tôi nên làm như thế nào?
Tôi đoán phương pháp thường được theo sau là
dataAdapter = new SqlDataAdapter (sqlQuery, conn);
dataSet = new DataSet();
da.Fill(dataSet);
Bây giờ lấy các giá trị từ textbox (hoặc sử dụng DataBinding) để thêm một hàng mới vào DataSet và gọi
da.Update(dataSet);
Nhưng câu hỏi là tại sao tôi nên lấy tất cả các bản ghi khác vào dataSet bằng cách sử dụng da.Fill (dataSet) ở nơi đầu tiên? Tôi chỉ muốn thêm một bản ghi mới.
Với mục đích này, những gì tôi đang làm là, Tạo giản đồ của Cơ sở dữ liệu trong Tập dữ liệu. như thế này:
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"]);
Tôi đã sử dụng DataBinding để liên kết các cột này với các hộp văn bản tương ứng. Bây giờ tôi đang bối rối! Tôi nên làm gì tiếp theo? Làm thế nào để sử dụng lệnh Chèn? Bởi vì tôi đã không cung cấp cho bất kỳ dataAdapter.SelectCommand do đó dataAdapter.Update() wont làm việc tôi đoán. Vui lòng đề xuất phương pháp tiếp cận chính xác.
Đó là "WHERE 0 = 1" là một phao cứu sinh. (Đang tải một bảng phương tiện 2GB vào bộ nhớ ... tiếng thở dài ..) – pkExec
Tôi đã quan tâm đến dòng lệnh mới 'SqlCommandBuilder (dataAdapter);' - điều đó làm cho một số phép thuật xảy ra vì vậy tôi không phải viết toàn bộ lệnh INSERT các câu lệnh. Cảm ơn! –
dataSet.Tables ["Customers"] Thêm (newRow); không biên dịch. "System.Data.DataTable không chứa định nghĩa cho 'Thêm'". Bạn có nghĩa là dataSet.Tables [tableName] .Rows.Add (newRow) ;? –