Я немного смущен параметрами MySQL.C# Параметры MySQL:? или @
Обе следующие части моего кода работают нормально. Первый из них использует параметры с @
:
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();
}
}
Второй использует параметры с ?
:
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();
}
}
These answers говорят как @
или ?
прекрасно работают. Даже cmd.Parameters.AddWithValue("@name", name);
, похоже, работает (отметьте @
в названии).
Почему все они отлично работают с MySQL?
Есть ли разница между ними?
Какой из них является правильным способом использования с MySQL?
Спасибо за любую помощь, которую я получу.
Я думаю, что это отвечает на все вопросы от OP. '+ 1' и приятная находка. –
+1 за отличный ответ. – analyticalpicasso
Спасибо! Это окончательно отвечает на мои вопросы. +1 Хороший улов. –