Heim >Backend-Entwicklung >C++ >Wie rufe ich Ausgabeparameter aus gespeicherten SQL Server-Prozeduren in C# ab?

Wie rufe ich Ausgabeparameter aus gespeicherten SQL Server-Prozeduren in C# ab?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-10 11:16:41795Durchsuche

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

Verwendung gespeicherter Prozedurausgabeparameter in C#

Beim Abrufen von Daten aus einer gespeicherten SQL Server-Prozedur müssen Sie häufig auf die Ausgabeparameter der gespeicherten Prozedur im C#-Code zugreifen. Allerdings kann es eine Herausforderung sein, zu verstehen, wie man dies effektiv umsetzen kann.

Stellen Sie sich eine gespeicherte Prozedur namens usp_InsertContract vor, die neue Datensätze in die Tabelle Contracts einfügt und den zugewiesenen Primärschlüssel als Ausgabeparameter zurückgibt:

<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>

Um diese gespeicherte Prozedur in C# auszuführen, können Sie den folgenden Codeausschnitt verwenden:

<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>

In diesem Codeausschnitt werden die Objekte SqlConnection und SqlCommand verwendet, um eine Verbindung zur Datenbank herzustellen und die gespeicherte Prozedur auszuführen. Fügen Sie dem Befehl den Eingabeparameter @ContractNumber hinzu, erstellen Sie einen Ausgabeparameter @NewId und setzen Sie dessen Direction-Attribut auf ParameterDirection.Output.

Nach dem Ausführen der gespeicherten Prozedur kann der Ausgabeparameterwert mithilfe des Value-Attributs des Parameters abgerufen werden. Der abgerufene Wert kann dann im C#-Code verwendet werden.

Indem Sie diese Schritte befolgen, können Sie Ausgabeparameter gespeicherter Prozeduren in C#-Code effektiv verwenden, um Daten aus einer gespeicherten SQL Server-Prozedur abzurufen.

Das obige ist der detaillierte Inhalt vonWie rufe ich Ausgabeparameter aus gespeicherten SQL Server-Prozeduren in C# ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn