Quiero insertar una fila en la base de datos usando SqlDataAdapter. Tengo 2 tablas (Pedidos Custormers &) en la base de datos CustomerOrders y tengo más de mil registros. Quiero crear una GUI (TextBoxes) para agregar nuevos pedidos de clientes & en la Base de datos a sus respectivas tablas.Usando SqlDataAdapter para insertar una fila
- ¿Cómo debo hacerlo?
supongo que el método que se sigue normalmente se
dataAdapter = new SqlDataAdapter (sqlQuery, conn);
dataSet = new DataSet();
da.Fill(dataSet);
Ahora toma los valores de los cuadros de texto (o utilizar DataBinding) para añadir una nueva fila en el conjunto de datos y llamar a
da.Update(dataSet);
Pero la pregunta es ¿Por qué debería buscar todos los demás registros en dataSet usando da.Fill (dataSet) en primer lugar? Solo quiero agregar un nuevo registro.
Para este propósito, lo que estoy haciendo es crear el esquema de la base de datos en el conjunto de datos. como este:
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"]);
He utilizado DataBinding para unir estas columnas a los cuadros de texto respectivos. ¡Ahora estoy confundido! ¿Qué debería hacer después? ¿Cómo usar el comando Insertar? Porque no di ningún dataAdapter.SelectCommand para que dataAdapter.Update() no funcione, supongo. Por favor sugiere un enfoque correcto.
Ese "DONDE 0 = 1" era un salvavidas. (Cargando una tabla de medios de 2GB en la memoria ... suspiro ...) – pkExec
Estaba interesado en la línea 'new SqlCommandBuilder (dataAdapter);' - eso hace que ocurra algo de magia, así que no tengo que escribir todo el INSERT declaraciones. ¡Gracias! –
dataSet.Tables ["Clientes"]. Agregar (newRow); no compila "System.Data.DataTable no contiene una definición para 'Agregar'". ¿Te refieres a dataSet.Tables [tableName] .Rows.Add (newRow) ;? –