在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中文網其他相關文章!