Maison > base de données > tutoriel mysql > Pourquoi mon instruction préparée C# MySQL échoue-t-elle et comment puis-je y remédier ?

Pourquoi mon instruction préparée C# MySQL échoue-t-elle et comment puis-je y remédier ?

Patricia Arquette
Libérer: 2024-11-28 11:54:11
original
198 Les gens l'ont consulté

Why is my C# MySQL Prepared Statement Failing, and How Can I Fix It?

Dépannage d'une instruction préparée en C# avec MySQL

Vous avez rencontré une erreur en essayant d'utiliser une instruction préparée dans votre programme C# avec MySQL. Bien que sa conversion en instruction standard ait donné les résultats souhaités, vous demandez de l'aide pour identifier le problème.

Code incorrect :

cmd = new MySqlCommand("SELECT * FROM admin WHERE admin_username='@val1' AND admin_password=PASSWORD('@val2')", MySqlConn.conn);
cmd.Prepare();
cmd.Parameters.AddWithValue("@val1", tboxUserName.Text);
cmd.Parameters.AddWithValue("@val2", tboxPassword.Text);
Copier après la connexion

Corrections :

  • Utilisez Préparer après avoir ajouté des paramètres : Dans le code incorrect, la commande a été préparée avant l'ajout de paramètres. L'approche correcte consiste à ajouter d'abord des paramètres, puis à appeler Prepare().
  • Supprimer les guillemets simples de la requête : La requête contenait des guillemets simples entourant les espaces réservés des paramètres (@val1 et @val2), ce qui est incorrect. Les instructions préparées nécessitent des espaces réservés pour les paramètres sans guillemets.

Code corrigé :

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();
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal