Mengakses Nilai Pulangan daripada SQL Server Stored Procedures dalam C#
Artikel ini menerangkan cara untuk mendapatkan kembali nilai dengan betul daripada prosedur tersimpan SQL Server dalam aplikasi C#. Masalah biasa timbul apabila cuba mengakses nilai pulangan—contohnya, nombor urutan seterusnya—tanpa pengendalian parameter yang betul.
Contoh menggunakan prosedur tersimpan, usp_GetNewSeqVal
, yang menambah nilai jujukan dalam jadual AllSequences
dan mengembalikan nilai yang dikemas kini. Kod C# menyambung ke pangkalan data dan melaksanakan prosedur tersimpan menggunakan SqlCommand
.
Kunci untuk mendapatkan semula nilai pulangan ialah menambahkan parameter dengan ParameterDirection.ReturnValue
pada koleksi parameter SqlCommand
. Parameter khusus ini bertindak sebagai bekas untuk output prosedur tersimpan.
Berikut ialah coretan kod C# yang diperbetulkan:
<code class="language-csharp">using (SqlCommand cmd = conn.CreateCommand()) { // ... other code ... // Add a parameter to receive the return value SqlParameter returnParameter = cmd.Parameters.Add("@ReturnVal", SqlDbType.Int); returnParameter.Direction = ParameterDirection.ReturnValue; // ... other code ... conn.Open(); cmd.ExecuteNonQuery(); int result = (int)returnParameter.Value; // Cast to appropriate type }</code>
Dengan menetapkan ParameterDirection
kepada ReturnValue
, SqlParameter
ditetapkan sebagai penerima nilai pulangan prosedur tersimpan. Selepas ExecuteNonQuery()
, sifat Value
parameter ini memegang nilai yang dikembalikan, yang kemudiannya boleh diakses dan digunakan oleh aplikasi C#. Ingat untuk menghantar sifat Value
ke jenis data yang betul.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Pulangan daripada Prosedur Tersimpan Pelayan SQL dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!