Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengambil Parameter Output daripada Prosedur Tersimpan SQL Server dalam C#?

Bagaimana untuk Mengambil Parameter Output daripada Prosedur Tersimpan SQL Server dalam C#?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-10 11:16:41792semak imbas

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

Menggunakan parameter output prosedur tersimpan dalam C#

Apabila mendapatkan semula data daripada prosedur tersimpan SQL Server, anda selalunya perlu mengakses parameter output prosedur tersimpan dalam kod C#. Walau bagaimanapun, memahami cara melakukan ini dengan berkesan boleh menjadi satu cabaran.

Pertimbangkan prosedur tersimpan bernama usp_InsertContract yang memasukkan rekod baharu ke dalam jadual Contracts dan mengembalikan kunci utama yang diberikan sebagai parameter output:

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

Untuk melaksanakan prosedur tersimpan ini dalam C#, anda boleh menggunakan coretan kod berikut:

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

Dalam coretan kod ini, objek SqlConnection dan SqlCommand digunakan untuk mewujudkan sambungan ke pangkalan data dan melaksanakan prosedur tersimpan. Tambahkan parameter input @ContractNumber pada arahan dan cipta parameter output @NewId dan tetapkan atribut Directionnya kepada ParameterDirection.Output.

Selepas melaksanakan prosedur tersimpan, nilai parameter output boleh diambil menggunakan atribut Value parameter. Nilai yang diperoleh kemudian boleh digunakan dalam kod C#.

Dengan mengikut langkah ini, anda boleh menggunakan parameter output prosedur tersimpan dalam kod C# dengan berkesan untuk mendapatkan semula data daripada prosedur tersimpan SQL Server.

Atas ialah kandungan terperinci Bagaimana untuk Mengambil Parameter Output daripada Prosedur Tersimpan SQL Server dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn