Paramètres de procédure stockée : la pièce manquante
Lorsque vous essayez d'insérer des données dans une base de données SQL Server via une procédure stockée, vous pouvez rencontrer le erreur : "La procédure ou la fonction attend un paramètre qui n'est pas fourni." Cette erreur indique qu'un paramètre obligatoire est manquant dans l'appel de la procédure stockée.
Identification du paramètre manquant
Pour identifier le paramètre problématique, reportez-vous au message d'erreur. Il fournit généralement le nom du paramètre manquant, dans ce cas, "@userID".
Confirmation de l'existence du paramètre
Après avoir vérifié la définition de la procédure stockée, vous remarquerez peut-être tous les paramètres sont présents. Alors pourquoi cette erreur ? Dans ce cas, le code semble appeler correctement la procédure stockée « SHOWuser ».
Inspection de l'exécution des commandes
Cependant, il est essentiel de définir la propriété CommandType pour l'objet SqlCommand à « StoredProcedure ». Cela indique à la base de données que la commande exécute une procédure stockée. Sans ce paramètre, la base de données peut essayer d'exécuter la commande comme une requête normale, et des paramètres manquants pourraient entraîner l'erreur.
Correction du code
L'extrait de code suivant démontre le correctif nécessaire :
SqlCommand cmd = new SqlCommand(); cmd.Connection = dbcon; cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.CommandText = "SHOWuser";
Racine possible Causes
Même lorsque toutes les valeurs de paramètres sont correctement fournies, vous pouvez rencontrer cette erreur si le CommandType n'est pas explicitement défini. Le message d'erreur peut être trompeur dans de tels cas. Cependant, inspecter soigneusement le code et comprendre les subtilités du passage des paramètres devrait aider à résoudre le problème.
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!