首页 > 后端开发 > 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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板