c#中调用存储过程示例

本文介绍如何在C#中调用SQL Server的存储过程,以一个查询密码的示例说明,强调存储过程的使用及游标在处理结果集中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sql server 支持存储过程,存储过程就是将sql语句以函数的形式内嵌在数据库中,这样就可以在主程序中调用这个存储过程了。

这里给出一个用以id来查询密码的存储过程示例:

<span style="font-size:18px;">//存储过程名字为</span><span style="font-size:18px;">getUserById</span><span style="font-size:18px;">
create procedure getUserById(
	@id varchar(50),
	@name varchar(50) output,
	@password varchar(50) output)//output意为输出参数
	as 
	begin
        //表的名字是UserInfo,有两个属性:id password
        select @password = password from UserInfo where id = @id
	end</span>
下面是c#中调用这个存储过程的例子。

//创建执行语句
<span style="font-size:18px;">SqlCommand command = conn.CreateCommand();
//设置执行语句类型为存储过程
 command.CommandType = CommandType.StoredProcedure;
指定存储过程名字
 command.CommandText = "getUserById";
//给存储过程的输入参数@id赋值
 command.Parameters.Add("@id",SqlDbType.VarChar,50).Value = id;
//声明存储过程的输出参数@password
 command.Parameters.Add("@password",SqlDbType.VarChar,50).Direction = ParameterDirection.Output;
//执行存储过程          
command.ExecuteReader();
//获取输出参数      
user.password = command.Parameters["@password"].Value.ToString();</span>
上面这个例子实现了以id来查询密码的功能。对于普通的sql语句来说存储过程有点画蛇添足,因为只要一条sql语句就可以完成了。但是对于较复杂的sql语句或者频繁的业务操作来说,存储过程可以有效减少程序中调用重复的sql语句,减少通信量。

查询结果集是sql查询最普遍的操作,而存储过程的返回值与输出参数无法实现集合的输出,而是用游标Cursor来指示一个集合,通过游标的移动来读取集合中的元素。这个以后如果需要的话,会深入学习一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值