Maison  >  Article  >  base de données  >  Pourquoi mes instructions préparées C# avec MySQL échouent-elles et comment puis-je les corriger ?

Pourquoi mes instructions préparées C# avec MySQL échouent-elles et comment puis-je les corriger ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-16 14:26:03514parcourir

Why Are My C# Prepared Statements with MySQL Failing, and How Can I Fix Them?

Utilisation des instructions préparées en C# avec MySQL

En tentant d'utiliser des instructions préparées dans un programme C#, les développeurs peuvent rencontrer des difficultés. Un problème courant survient lorsque le code de l'instruction préparée est remplacé par une instruction normale, ce qui entraîne une exécution réussie.

Après un examen attentif, il est évident que l'instruction préparée n'est pas configurée correctement. Voici les étapes clés pour utiliser correctement les instructions préparées :

  1. Créez un objet MySqlCommand avec la requête souhaitée contenant des espaces réservés pour les paramètres (par exemple, @val1).
  2. Ajoutez des paramètres à l'objet de commande en utilisant la méthode AddWithValue.
  3. Préparez la commande en appelant la méthode Prepare. Cette étape garantit que le serveur de base de données analyse et optimise l'instruction SQL.

L'exemple suivant illustre l'utilisation corrigée de l'instruction préparée :

private void btnLogin_Click(object sender, EventArgs e)
{
    MySqlCommand cmd = MySqlConn.cmd;
    cmd = new MySqlCommand("SELECT * FROM admin WHERE admin_username=@val1 AND admin_password=PASSWORD(@val2)", MySqlConn.conn);
    cmd.Parameters.AddWithValue("@val1", tboxUserName.Text);
    cmd.Parameters.AddWithValue("@val2", tboxPassword.Text);
    cmd.Prepare();
    MySqlDataReader res = cmd.ExecuteReader();
    if (!res.HasRows) { MessageBox.Show("Error! "); res.Close(); return; }
    else
    {
        //do something
    }
    res.Close();
}

Dans ce code révisé, les guillemets simples (') entourant les valeurs des paramètres dans la requête sont supprimés. De plus, la méthode Prepare est appelée après l’ajout des paramètres. En respectant ces étapes, les instructions préparées peuvent être utilisées efficacement dans les programmes C# avec MySQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn