Maison >base de données >tutoriel mysql >Pourquoi ma procédure stockée SQL génère-t-elle une erreur « La procédure ou la fonction « … » attend le paramètre « @nom du paramètre », qui n'a pas été fourni » ?
Une procédure stockée ou une fonction attend un paramètre censé être fourni
Lors de l'appel d'une procédure stockée pour insérer des données dans une base de données SQL Server, vous pouvez rencontrer l'erreur "La procédure ou la fonction 'nom de la procédure stockée' attend le paramètre '@nom du paramètre', qui n'a pas été fourni." Ce message d'erreur peut prêter à confusion, surtout si vous avez vérifié que la procédure stockée possède les paramètres corrects et qu'ils sont fournis dans votre code.
Dépannage de l'erreur
Pour résoudre ce problème, examinez attentivement les éléments suivants :
Exemple de mise à jour du code
Voici une version mise à jour de votre code qui spécifie explicitement le type de commande et valeurs des paramètres :
public void SHOWuser(string userName, string password, string emailAddress, List<int> preferences) { using var dbcon = new SqlConnection(conn); using var cmd = new SqlCommand(); cmd.Connection = dbcon; cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.CommandText = "SHOWuser"; cmd.Parameters.AddWithValue("@userName", userName); cmd.Parameters.AddWithValue("@password", password); cmd.Parameters.AddWithValue("@emailAddress", emailAddress); dbcon.Open(); int i = Convert.ToInt32(cmd.ExecuteScalar()); cmd.Parameters.Clear(); cmd.CommandText = "tbl_pref"; foreach (int preference in preferences) { cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@userID", Convert.ToInt32(i)); cmd.Parameters.AddWithValue("@preferenceID", Convert.ToInt32(preference)); cmd.ExecuteNonQuery(); } }
En inspectant soigneusement les noms des paramètres, les types de données, le type de commande et l'ordre des paramètres, vous pouvez atténuez cette erreur et exécutez avec succès votre procédure stockée.
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!