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

Bagaimana untuk Mendapatkan Nilai Pulangan Prosedur Tersimpan dalam C#?

Linda Hamilton
Linda Hamiltonasal
2025-01-20 01:17:13976semak imbas

How to Retrieve a Stored Procedure's Return Value in C#?

Dapatkan nilai pulangan prosedur tersimpan dalam C#

Artikel ini menerangkan cara memanggil prosedur tersimpan daripada aplikasi C# Windows dan mendapatkan nilai pulangannya. Prosedur tersimpan usp_GetNewSeqVal digunakan untuk menjana nilai jujukan baharu. Walaupun merujuk kepada beberapa penyelesaian di Internet, anda masih tidak berjaya memperoleh nilai pulangan.

Masalahnya ialah parameter arah ReturnValue tiada daripada arahan. Untuk membetulkannya, anda perlu menambah parameter berikut:

<code class="language-csharp">var returnParameter = cmd.Parameters.Add("@ReturnVal", SqlDbType.Int);
returnParameter.Direction = ParameterDirection.ReturnValue;</code>

Tetapkan arah parameter kepada ParameterDirection.ReturnValue mengarahkan SqlCommand untuk mengisytiharkannya sebagai pembolehubah dan tetapkan nilai pulangan prosedur tersimpan kepadanya. Ini serupa dengan sintaks yang digunakan dalam SQL (exec @ReturnValue = spMyProcedure...).

Dengan menambahkan parameter ini, panggilan cmd.ExecuteReader() akan melaksanakan prosedur yang disimpan dan menyimpan nilai pulangan dalam returnParameter. Anda kemudian boleh mengaksesnya sebagai returnParameter.Value.

Berikut ialah kod dengan pengubahsuaian yang diperlukan:

<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");

    var returnParameter = cmd.Parameters.Add("@ReturnVal", SqlDbType.Int);
    returnParameter.Direction = ParameterDirection.ReturnValue;

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

Dengan membuat perubahan ini, anda akan berjaya mendapatkan nilai pulangan prosedur yang disimpan.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Pulangan Prosedur Tersimpan 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