Я хочу вставить строку в базу данных с помощью SqlDataAdapter. У меня есть 2 таблицы (Custormers and Orders) в базе данных CustomerOrders и имеет более тысячи записей. Я хочу создать графический интерфейс (TextBoxes) для добавления новых клиентов и заказов в базу данных в соответствующие таблицы.
- Как мне это сделать?
Я предполагаю, что обычно используется метод
dataAdapter = new SqlDataAdapter (sqlQuery, conn);
dataSet = new DataSet();
da.Fill(dataSet);
Теперь возьмите значения из текстовых полей (или используйте DataBinding), чтобы добавить новую строку в набор данных и вызвать
da.Update(dataSet);
Но вопрос в том, почему следует извлекать все остальные записи в dataSet с использованием da.Fill(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 для привязки этих столбцов к соответствующим текстовым полям. Теперь я в замешательстве! Что я должен делать дальше? Как использовать команду Insert? Потому что я не дал никаких dataAdapter.SelectCommand, поэтому dataAdapter.Update() не работает, я думаю. Пожалуйста, предложите правильный подход.