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