C # MySQL Parameters:? ou @

Estou meio confuso com os parâmetros do MySQL.

Ambas as partes seguintes do meu código funcionam bem. O primeiro usa parâmetros com@ :

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 usa parâmetros com? :

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 respostas diga ambos@ ou? funciona bem. Atécmd.Parameters.AddWithValue("@name", name); parece funcionar (observe o@ no nome).

Por que todos eles funcionam bem com o MySQL?

Existe alguma diferença entre eles?

Qual é a maneira correta de usar com o MySQL?

Obrigado por qualquer ajuda que vou receber.

questionAnswers(3)

yourAnswerToTheQuestion