首頁 >後端開發 >C++ >如何在 C# 中從 SQL Server 預存程序檢索輸出參數?

如何在 C# 中從 SQL Server 預存程序檢索輸出參數?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-10 11:16:41840瀏覽

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

在C#中使用預存程序輸出參數

從SQL Server預存程序檢索資料時,通常需要在C#程式碼中存取預存程序的輸出參數。然而,理解如何有效地做到這一點可能是一個挑戰。

考慮一個名為usp_InsertContract的預存過程,它將新記錄插入到Contracts表中,並將指派的主鍵作為輸出參數傳回:

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

要在C#中執行此預存程序,可以使用以下程式碼片段:

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

在此程式碼片段中,SqlConnectionSqlCommand物件用於建立與資料庫的連線並執行預存程序。輸入參數@ContractNumber加入到指令中,並建立​​一個輸出參數@NewId,並將其Direction屬性設為ParameterDirection.Output

執行預存程序後,可以使用參數的Value屬性檢索輸出參數值。然後,可以在C#程式碼中使用檢索到的值。

透過遵循這些步驟,可以有效地在C#程式碼中使用預存程序輸出參數來從SQL Server預存程序檢索資料。

以上是如何在 C# 中從 SQL Server 預存程序檢索輸出參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn