使用 C# 存取 SQL Server 預存程序的回傳值
本文介紹如何在 C# 應用程式中正確檢索 SQL Server 預存程序的回傳值。 當嘗試存取返回值(例如下一個序號)而沒有正確的參數處理時,會出現一個常見問題。
此範例使用預存程序 usp_GetNewSeqVal
,它遞增 AllSequences
表中的序列值並傳回更新後的值。 C# 程式碼連接到資料庫並使用 SqlCommand
.
檢索回傳值的關鍵是將帶有ParameterDirection.ReturnValue
的參數加入SqlCommand
的參數集合中。這個專用參數充當儲存過程輸出的容器。
這是修正後的 C# 程式碼片段:
<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>
透過將 ParameterDirection
設定為 ReturnValue
,SqlParameter
被指定為儲存程序傳回值的接收者。 在 ExecuteNonQuery()
之後,此參數的 Value
屬性保存傳回的值,然後 C# 應用程式可以存取和使用該值。 請記住將 Value
屬性轉換為正確的資料類型。
以上是如何在 C# 中從 SQL Server 預存程序檢索傳回值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!