首页 >后端开发 >C++ >如何在 C# 中检索存储过程的返回值?

如何在 C# 中检索存储过程的返回值?

Linda Hamilton
Linda Hamilton原创
2025-01-20 01:17:13976浏览

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn