Requêtes paramétrées pour MySQL avec C#
Cette question répond à un problème courant rencontré lors de l'utilisation de requêtes paramétrées avec MySQL en C#. Le code fourni inclut les parties pertinentes du code qui soulèvent le problème.
Question :
L'extrait de code comprend une requête paramétrée avec deux points d'interrogation (?) comme espaces réservés pour les valeurs des paramètres. Cependant, l'utilisateur rencontre une exception IndexOutOfBoundsException lors de l'ajout du premier paramètre. Quel est le problème avec le code ?
Réponse :
Le code fourni initialise l'objet MySqlCommand avec une requête paramétrée, mais les points d'interrogation réservés ne sont pas préfixés par le "@ " caractère, qui est requis pour les paramètres nommés dans MySQL. Le code corrigé est le suivant :
private String readCommand = "SELECT LEVEL FROM USERS WHERE VAL_1 = @param_val_1 AND VAL_2 = @param_val_2;"; public bool read(string id) { level = -1; MySqlCommand m = new MySqlCommand(readCommand); m.Parameters.AddWithValue("@param_val_1", val1); m.Parameters.AddWithValue("@param_val_2", val2); level = Convert.ToInt32(m.ExecuteScalar()); return true; }
Dans ce code corrigé :
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!