C#中如何使用存储过程的输出参数?示例是什么?

首先设置参数方向为Output,再执行存储过程获取输出值。1. 创建带OUTPUT参数的存储过程,通过COUNT查询用户数量并赋值给输出参数;2. C#中使用SqlCommand调用,添加输入参数和指定SqlDbType的输出参数,设置Direction为ParameterDirection.Output;3. 打开连接后调用ExecuteNonQuery执行,执行完成后从outputParam.Value读取结果并转换为int输出。关键点包括:必须设置参数方向、确保执行后再读取值、SqlDbType与数据库类型匹配。

c#中如何使用存储过程的输出参数?示例是什么?

在C#中调用存储过程并使用输出参数,主要通过 SqlCommand 配合 SqlParameter 来实现。你需要设置参数的方向为 ParameterDirection.Output,执行存储过程后读取输出值。

1. 创建带输出参数的存储过程(SQL Server 示例)

假设我们有一个用户表,想通过用户名查询用户数量,并返回总数:

CREATE PROCEDURE GetUserCountByUserName    @UserName NVARCHAR(50),    @UserCount INT OUTPUTASBEGIN    SELECT @UserCount = COUNT(*)     FROM Users     WHERE UserName = @UserNameEND

2. C# 代码调用示例

以下是使用 ADO.NET 调用该存储过程并获取输出参数值的完整示例:

using System;using System.Data;using System.Data.SqlClient;

class Program{static void Main(){string connectionString = "your_connection_string_here";using (SqlConnection conn = new SqlConnection(connectionString)){SqlCommand cmd = new SqlCommand("GetUserCountByUserName", conn);cmd.CommandType = CommandType.StoredProcedure;

        // 输入参数        cmd.Parameters.Add(new SqlParameter("@UserName", "Alice"));        // 输出参数        SqlParameter outputParam = new SqlParameter("@UserCount", SqlDbType.Int);        outputParam.Direction = ParameterDirection.Output;        cmd.Parameters.Add(outputParam);        conn.Open();        cmd.ExecuteNonQuery();        // 获取输出参数的值        int userCount = (int)outputParam.Value;        Console.WriteLine($"用户数量: {userCount}");    }}

}

3. 关键点说明

ParameterDirection.Output:必须显式设置参数方向为 Output,否则无法接收返回值。ExecuteNonQuery:适用于不返回结果集、只执行操作或获取输出参数的场景。如果同时返回结果集,也可使用它,输出参数依然可用。读取值前确保执行完成:必须在调用 ExecuteNonQuery 或其他执行方法之后,才能从 outputParam.Value 获取值。类型匹配:SqlParameter 构造函数中指定的 SqlDbType 应与数据库中一致,避免转换错误。

基本上就这些,使用起来不复杂但容易忽略方向设置。

以上就是C#中如何使用存储过程的输出参数?示例是什么?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1439829.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 16:31:46
下一篇 2025年12月17日 16:31:53

相关推荐

发表回复

登录后才能评论
关注微信