Maison >développement back-end >C++ >Comment récupérer les paramètres de sortie des procédures stockées SQL Server en C# ?

Comment récupérer les paramètres de sortie des procédures stockées SQL Server en C# ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-10 11:16:41846parcourir

How to Retrieve Output Parameters from SQL Server Stored Procedures in C#?

Utilisation des paramètres de sortie de procédure stockée en C#

Lors de la récupération de données d'une procédure stockée SQL Server, vous devez souvent accéder aux paramètres de sortie de la procédure stockée en code C#. Cependant, comprendre comment y parvenir efficacement peut être un défi.

Considérons une procédure stockée nommée usp_InsertContract qui insère de nouveaux enregistrements dans la table Contracts et renvoie la clé primaire attribuée comme paramètre de sortie :

<code class="language-sql">CREATE PROCEDURE usp_InsertContract
    @ContractNumber varchar(7),
    @NewId int OUTPUT
AS
BEGIN
    INSERT into [dbo].[Contracts] (ContractNumber)
        VALUES (@ContractNumber)
    Select @NewId = Id From [dbo].[Contracts] where ContractNumber = @ContractNumber
END</code>

Pour exécuter cette procédure stockée en C#, vous pouvez utiliser l'extrait de code suivant :

<code class="language-csharp">using System.Data;
using System.Data.SqlClient;

public class StoredProcedureOutputParameterExample
{
    public static void Main()
    {
        // 定义连接字符串并初始化连接。
        string connectionString = "Server=localhost;Database=MyDatabase;User Id=sa;Password=mypassword;";
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            // 创建命令对象。
            using (SqlCommand command = new SqlCommand("usp_InsertContract", connection))
            {
                // 将命令类型设置为StoredProcedure。
                command.CommandType = CommandType.StoredProcedure;

                // 向命令添加输入参数。
                command.Parameters.Add(new SqlParameter("@ContractNumber", SqlDbType.VarChar, 7) { Value = "ABC123" });

                // 向命令添加输出参数。
                SqlParameter newIdParameter = new SqlParameter("@NewId", SqlDbType.Int) { Direction = ParameterDirection.Output };
                command.Parameters.Add(newIdParameter);

                // 打开连接并执行命令。
                connection.Open();
                command.ExecuteNonQuery();

                // 检索输出参数值。
                int newId = (int)newIdParameter.Value;

                // 使用输出参数值。
                Console.WriteLine($"New ID: {newId}");
            }
        }
    }
}</code>

Dans cet extrait de code, les objets SqlConnection et SqlCommand sont utilisés pour établir une connexion à la base de données et exécuter la procédure stockée. Ajoutez le paramètre d'entrée @ContractNumber à la commande, créez un paramètre de sortie @NewId et définissez son attribut Direction sur ParameterDirection.Output.

Après l'exécution de la procédure stockée, la valeur du paramètre de sortie peut être récupérée à l'aide de l'attribut Value du paramètre. La valeur récupérée peut ensuite être utilisée dans le code C#.

En suivant ces étapes, vous pouvez utiliser efficacement les paramètres de sortie de procédure stockée dans le code C# pour récupérer les données d'une procédure stockée SQL Server.

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