首頁 >後端開發 >C++ >如何使用 ADO.NET 從 C# 中的預存程序中檢索回傳值?

如何使用 ADO.NET 從 C# 中的預存程序中檢索回傳值?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-20 01:21:09973瀏覽

How to Retrieve a Return Value from a Stored Procedure in C# using ADO.NET?

在C#中呼叫帶回傳值的預存程序

存取資料庫時的常見需求是從應用程式中呼叫預存程序,尤其是在那些傳回數值的預存過程中。本文示範如何使用ADO.NET在C#應用程式中呼叫傳回整數值的預存程序並檢索結果。

預存程序

考慮預存程序usp_GetNewSeqVal,它會檢索給定序列名稱的序列的下一個值。它接收@SeqName參數作為輸入,並傳回新的序列值。

C#程式碼

為了呼叫此預存程序並檢索回傳值,我們可以使用以下程式碼:

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

關鍵細節

  • SqlCommand 使用正確的命令文字和類型進行設定。
  • 輸入參數@SeqName加入指令。
  • 新增一個新的參數@ReturnVal,其方向設定為ParameterDirection.ReturnValue。這指示命令在預存過程中建立變數並將返回值賦值給它。
  • 連線打開,並使用ExecuteNonQuery執行查詢。
  • 最後,可以從returnParameter.Value屬性檢索回傳值。

以上是如何使用 ADO.NET 從 C# 中的預存程序中檢索回傳值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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