Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mendapatkan Nilai Pemulangan Prosedur Tersimpan dalam C#?

Bagaimana untuk Mendapatkan Nilai Pemulangan Prosedur Tersimpan dalam C#?

Susan Sarandon
Lepaskan: 2025-01-20 01:32:08
asal
751 orang telah melayarinya

How to Retrieve Stored Procedure Return Values in C#?

Dapatkan nilai pulangan prosedur tersimpan dalam C#

Apabila memanggil prosedur tersimpan yang mengembalikan nilai dalam C#, adalah penting untuk mengendalikan nilai pulangan dalam kod dengan betul. Artikel ini menerangkan masalah ini dan menyediakan penyelesaian untuk berjaya mendapatkan kembali nilai daripada prosedur yang disimpan.

Pernyataan Masalah

Aplikasi C# perlu memanggil prosedur tersimpan yang mengembalikan nilai seterusnya dalam urutan. Walaupun mengikut penyelesaian dalam talian, saya masih tidak dapat mendapatkan nilai pulangan. Coretan kod yang disediakan termasuk mencipta objek SqlCommand, menentukan prosedur tersimpan sebagai teks arahan dan menggunakan SqlConnection untuk melaksanakan arahan. Walau bagaimanapun, nilai pulangan prosedur yang disimpan tidak diperolehi.

Kod prosedur kedai

<code class="language-sql">ALTER procedure [dbo].[usp_GetNewSeqVal]
      @SeqName nvarchar(255)
as
begin
      declare @NewSeqVal int
      set NOCOUNT ON
      update AllSequences
      set @NewSeqVal = CurrVal = CurrVal+Incr
      where SeqName = @SeqName

      if @@rowcount = 0 begin
print 'Sequence does not exist'
            return
      end

      return @NewSeqVal
end</code>
Salin selepas log masuk

Kod C# untuk memanggil prosedur tersimpan

<code class="language-csharp">SqlConnection conn = new SqlConnection(getConnectionString());
conn.Open();

SqlCommand cmd = new SqlCommand(parameterStatement.getQuery(), conn);
cmd.CommandType = CommandType.StoredProcedure;

SqlParameter param = new SqlParameter();

param = cmd.Parameters.Add("@SeqName", SqlDbType.NVarChar);
param.Direction = ParameterDirection.Input;
param.Value = "SeqName";

SqlDataReader reader = cmd.ExecuteReader();</code>
Salin selepas log masuk

Penyelesaian

Untuk mendapatkan nilai pulangan prosedur yang disimpan, anda perlu menambah parameter dengan arah ReturnValue pada objek SqlCommand. Ini mengarahkan arahan untuk mengisytiharkan pembolehubah dan memberikan nilai pulangan prosedur yang disimpan kepadanya. Kod berikut menunjukkan penyelesaian:

<code class="language-csharp">using (SqlConnection conn = new SqlConnection(getConnectionString()))
using (SqlCommand cmd = conn.CreateCommand())
{
    cmd.CommandText = parameterStatement.getQuery();
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("SeqName", "SeqNameValue");

    // @ReturnVal 可以是任何名称
    var returnParameter = cmd.Parameters.Add("@ReturnVal", SqlDbType.Int);
    returnParameter.Direction = ParameterDirection.ReturnValue;

    conn.Open();
    cmd.ExecuteNonQuery();
    var result = returnParameter.Value;
}</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Pemulangan Prosedur Tersimpan dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan