Accès aux valeurs de retour des procédures stockées SQL Server en C#
Cet article explique comment récupérer correctement les valeurs de retour des procédures stockées SQL Server dans une application C#. Un problème courant survient lorsque vous essayez d'accéder à une valeur de retour, par exemple le numéro de séquence suivant, sans gestion appropriée des paramètres.
L'exemple utilise une procédure stockée, usp_GetNewSeqVal
, qui incrémente une valeur de séquence dans la table AllSequences
et renvoie la valeur mise à jour. Le code C# se connecte à la base de données et exécute la procédure stockée à l'aide de SqlCommand
.
La clé pour récupérer la valeur de retour consiste à ajouter un paramètre avec ParameterDirection.ReturnValue
à la collection de paramètres de SqlCommand
. Ce paramètre dédié agit comme un conteneur pour la sortie de la procédure stockée.
Voici l'extrait de code C# corrigé :
<code class="language-csharp">using (SqlCommand cmd = conn.CreateCommand()) { // ... other code ... // Add a parameter to receive the return value SqlParameter returnParameter = cmd.Parameters.Add("@ReturnVal", SqlDbType.Int); returnParameter.Direction = ParameterDirection.ReturnValue; // ... other code ... conn.Open(); cmd.ExecuteNonQuery(); int result = (int)returnParameter.Value; // Cast to appropriate type }</code>
En définissant ParameterDirection
sur ReturnValue
, le SqlParameter
est désigné comme le destinataire de la valeur de retour de la procédure stockée. Après ExecuteNonQuery()
, la propriété Value
de ce paramètre contient la valeur renvoyée, qui peut ensuite être consultée et utilisée par l'application C#. N'oubliez pas de convertir la propriété Value
en type de données correct.
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!