Insertar un grupo de registros de una sola vez

01/05/2007 - 00:22 por jazdian | Informe spam
Tengo una página WEB donde el usuario ingreso los precios de 5
productos.
La página tiene un un Texbox para los precios de los nueve productos:

id_reporte : 125

id producto precio
1 Producto1 10.50
2 Producto2 12.50
3 Producto3 12.50
4 Producto4 12.00
5 Producto5 11.25

cuando el usuario de clic en el botón GUARDAR entonces los datos se
guardaran en una tabla de precios con los siguientes campos:

id_reporte idproducto precio
125 1 10.50
125 2 12.50
125 3 12.50
125 4 12.00
125 5 11.25

la pregunta es ¿Como puedo hacer para que de una sola vez los
registros queden guardados en mi tabla de precios? Pues la forma en
como lo he hecho es abrir una conexión insertar un registro y cerrar y
así sucesivamente en cada uno de los cinco registros.

¿Hay alguna forma de hacer que en un bucle se guarden los cinco
registros de una sola vez? ¿Que hay si quiero insertar 100 registros o
1000?
 

Leer las respuestas

#1 Octavio Hernandez
01/05/2007 - 02:25 | Informe spam
Hola,

Debes abrir la conexión, iniciar una transacción, insertar los 5 registros,
confirmar la transacción y cerrar la conexión.

using (con = new SqlConnection(cadenaConexion))
{
con.Open();
SqlTransaction tr = con.BeginTransaction();
try
{
// INSERTAR LOS 5 REGISTROS
using (SqlCommand cmd = new SqlCommand("INSERT INTO
PRECIOS(ID_INF, ID_PROD, PRECIO) VALUES (" + v11 + ", " + v12 + ", " + v13 +
")",
con)
{
cmd.ExecuteNonQuery();
}
// cuatro veces más...
// CONFIRMAR
tr.Commit();
}
catch
{
tr.Rolback();
}
}

La manera óptima de insertar esos 5 registros sería definir el SqlCommand
parametrizado y llamarlo 5 veces con 5 juegos de valores diferentes.

Slds - Octavio



"jazdian" escribió en el mensaje
news:
Tengo una página WEB donde el usuario ingreso los precios de 5
productos.
La página tiene un un Texbox para los precios de los nueve productos:

id_reporte : 125

id producto precio
1 Producto1 10.50
2 Producto2 12.50
3 Producto3 12.50
4 Producto4 12.00
5 Producto5 11.25

cuando el usuario de clic en el botón GUARDAR entonces los datos se
guardaran en una tabla de precios con los siguientes campos:

id_reporte idproducto precio
125 1 10.50
125 2 12.50
125 3 12.50
125 4 12.00
125 5 11.25

la pregunta es ¿Como puedo hacer para que de una sola vez los
registros queden guardados en mi tabla de precios? Pues la forma en
como lo he hecho es abrir una conexión insertar un registro y cerrar y
así sucesivamente en cada uno de los cinco registros.

¿Hay alguna forma de hacer que en un bucle se guarden los cinco
registros de una sola vez? ¿Que hay si quiero insertar 100 registros o
1000?

Preguntas similares