首頁 > 後端開發 > C++ > 如何在 C# 中檢索預存程序的回傳值?

如何在 C# 中檢索預存程序的回傳值?

Linda Hamilton
發布: 2025-01-20 01:17:13
原創
974 人瀏覽過

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

在C#中取得預存程序回傳值

本文介紹如何從C# Windows應用程式呼叫預存程序並取得其回傳值。預存程序usp_GetNewSeqVal用於產生新的序列值。儘管參考了網路上的一些解決方案,但您仍然無法成功取得回傳值。

問題在於指令中缺少ReturnValue方向的參數。要解決這個問題,您需要新增以下參數:

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

將參數的方向設定為ParameterDirection.ReturnValue指示SqlCommand將其宣告為一個變量,並將預存程序的回傳值賦給它。這類似於SQL中使用的語法(exec @ReturnValue = spMyProcedure...)。

透過新增此參數,cmd.ExecuteReader()呼叫將執行預存程序並將回傳值儲存在returnParameter中。然後您可以將其作為returnParameter.Value訪問。

以下是包含必要修改的程式碼:

<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>
登入後複製

透過進行此更改,您將能夠成功檢索預存程序的回傳值。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板