Maison >base de données >tutoriel mysql >Comment récupérer les valeurs de retour des procédures stockées en C# ?

Comment récupérer les valeurs de retour des procédures stockées en C# ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-06 02:55:39428parcourir

How to Retrieve Return Values from Stored Procedures in C#?

Récupération des valeurs de retour des procédures stockées en C#

Cet article explique comment récupérer les valeurs de retour des procédures stockées en C#.

Considérons la procédure stockée suivante nommée "[dbo].[Validate]":

ALTER PROCEDURE [dbo].[Validate]
@a varchar(50),
@b varchar(50) output

AS

SET @Password = 
(SELECT Password
FROM dbo.tblUser
WHERE Login = @a)

RETURN @b

Pour exécuter cette procédure stockée et récupérer la valeur de retour, vous pouvez utiliser le code suivant :

using System;
using System.Data;
using System.Data.SqlClient;

namespace StoredProcedureReturnValue
{
    class Program
    {
        static void Main(string[] args)
        {
            // Assuming you have a connection string defined in your app config
            string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MyLocalSQLServer"].ConnectionString;

            // Create a connection and command object
            using (SqlConnection SqlConn = new SqlConnection(connectionString))
            using (SqlCommand sqlcomm = new SqlCommand("Validate", SqlConn))
            {
                // Specify the stored procedure
                sqlcomm.CommandType = CommandType.StoredProcedure;

                // Add input parameters
                SqlParameter inputParam = new SqlParameter("@a", SqlDbType.VarChar, 50);
                inputParam.Value = "myUsername";
                sqlcomm.Parameters.Add(inputParam);

                // Add an output parameter to receive the return value
                SqlParameter outputParam = new SqlParameter("@b", SqlDbType.VarChar, 50);
                outputParam.Direction = ParameterDirection.ReturnValue;
                sqlcomm.Parameters.Add(outputParam);

                // Open the connection and execute the stored procedure
                SqlConn.Open();
                sqlcomm.ExecuteNonQuery();

                // Retrieve the output value
                string returnValue = (string)outputParam.Value;

                // Do something with the return value
                Console.WriteLine($"Return value: {returnValue}");
            }
        }
    }
}

Clé points à noter :

  • N'oubliez pas d'appeler ExecuteNonQuery() sur l'objet SqlCommand pour exécuter le stocké procédure.
  • La direction du paramètre de sortie doit être définie sur ReturnValue pour recevoir la valeur de retour.
  • Enfin, récupérez la valeur de retour de la propriété Value du paramètre de sortie.

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!

Déclaration:
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