Parámetros de MySQL C #:? o @
Estoy algo confundido con los parámetros de MySQL.
Las dos partes siguientes de mi código funcionan bien. El primero usa parámetros con@
:
const string query = "UPDATE `items` SET `name` = @name, `price` = @price WHERE `id` = @id";
try
{
using (MySqlCommand cmd = new MySqlCommand(query, Database.MyConnection))
{
cmd.Parameters.AddWithValue("name", name);
cmd.Parameters.AddWithValue("price", price);
cmd.Parameters.AddWithValue("id", id);
cmd.ExecuteNonQuery();
}
}
Segundo utiliza parámetros con?
:
const string query = "UPDATE `items` SET `name` = ?name, `price` = ?price WHERE `id` = ?id";
try
{
using (MySqlCommand cmd = new MySqlCommand(query, Database.MyConnection))
{
cmd.Parameters.AddWithValue("name", name);
cmd.Parameters.AddWithValue("price", price);
cmd.Parameters.AddWithValue("id", id);
cmd.ExecuteNonQuery();
}
}
Estas respuestas di ambos@
o?
trabaja bien. Inclusocmd.Parameters.AddWithValue("@name", name);
parece funcionar (note la@
en el nombre).
¿Por qué todos ellos funcionan bien con MySQL?
¿Hay alguna diferencia entre ellos?
¿Cuál es la forma correcta de usar con MySQL?
Gracias por cualquier ayuda que voy a obtener.