Estoy tratando de insertar un registro de base de datos dentro de un ciclo en C#.ExecuteNonQuery dentro del ciclo
funciona cuando codificar los valores de esta manera:
string query3 = "INSERT INTO furniture (room_id,member_id) VALUES (222,333);";
SqlCommand cmd3 = new SqlCommand(query3, sqlConnection3);
sqlConnection3.Open();
for (int i = 0; i < arrItemsPlanner.Length; i++)
{
try
{
cmd3.ExecuteNonQuery();
}
catch
{
return "Error: Item could not be saved";
}
finally
{
//Fail
}
}
Pero cuando se utiliza consultas parametrizadas no funciona - incluso si codificar un valor en la consulta parametrizada como esto:
string query3 = "INSERT INTO furniture (room_id,member_id) VALUES (@room_id,333);";
SqlCommand cmd3 = new SqlCommand(query3, sqlConnection3);
sqlConnection3.Open();
for (int i = 0; i < arrItemsPlanner.Length; i++)
{
try
{
cmd3.Parameters.Add("@room_id", System.Data.SqlDbType.Int);
cmd3.Parameters["@room_id"].Value = 222;
cmd3.ExecuteNonQuery();
}
catch
{
return "Error: Item could not be saved";
}
finally
{
//Fail
}
}
¿Alguien puede ver dónde me está yendo mal aquí?
¡Muchas gracias!
Gracias - ¡He estado rascándome la cabeza con eso por AGES! Les toma a ustedes segundos descubrirlo. Muchas gracias a todos. – Dan
@Dan - ¡no hay problema! Por cierto, sugiero que actualice su código para usar la disposición adecuada con una declaración 'using' (como lo sugiere la publicación de Austin Salonen). –