当前位置: 移动技术网 > IT编程>开发语言>c# > C#调用sql2000存储过程方法小结

C#调用sql2000存储过程方法小结

2019年07月18日  | 移动技术网IT编程  | 我要评论
本文实例总结了c#调用sql2000存储过程方法,分享给大家供大家参考。具体实现方法如下: 调试环境:vs.net 2005,sql 2000,windows xp sp

本文实例总结了c#调用sql2000存储过程方法,分享给大家供大家参考。具体实现方法如下:

调试环境:vs.net 2005,sql 2000,windows xp sp2。

语言:c#

一、调用带输入参数的存储过程

首先自然是在查询分析器里创建一个存储过程喽~~   如下所示:

复制代码 代码如下:
create proc proc_1
@uid int,
@pwd varchar(255)
as
select username from users where uid = @uid and password = @pwd
go

 
接下来我们就来看下如何在vs 2005中使用c#调用这个存储过程。

方法一:

复制代码 代码如下:
sqlconnection conn = new sqlconnection("server=(local);database=sql1;uid=sa;pwd=");
conn.open();//打开数据库连接
sqlcommand cmd = new sqlcommand("exec proc_1 @uid=1,@pwd=admin", conn);//command中写调用存储过程的语句
//大家应该看出来了和直接在查询分析器中执行很类似,“exec 存储过程名 @参数1=参数值,@参数2=参数值”
sqldatareader sdr = cmd.executereader();//执行存储过程
while (sdr.read())
{
    response.write(sdr["username"].tostring());//输出查询到的值
}
sdr.close();
conn.close();

方法二:

复制代码 代码如下:
sqlconnection conn = new sqlconnection("server=(local);database=sql1;uid=sa;pwd=");
conn.open();//打开数据库连接
sqlcommand cmd = new sqlcommand("proc_1", conn);//存储过程名
cmd.commandtype = commandtype.storedprocedure;//设置命令类型为存储过程
sqlparameter[] param = new sqlparameter[]{
   new sqlparameter("uid", sqldbtype.int, 4),
   new sqlparameter("pwd", sqldbtype.varchar,255),
};//定义参数,这些是存储过程中要调用的参数,也可以通过直接使用cmd.addwithvalue方法添加参数
param[0].value = 1;//给参数赋值
param[1].value = "admin";
cmd.parameters.addrange(param);//一定要记得将刚定义的参数添加到cmd的参数中,不然前面的参数就白弄了。
string sname =(string)cmd.executescalar();//如果存储过程返回的是单个值,我们可以直接这样取出所要的值
response.write(sname);
sdr.close();
conn.close();

二、调用带输出参数的存储过程

上面所讲的只是调用输入参数的存储过程,下面大概讲一下如何调用有输出参数的存储过程。

首先,我们先对之前的存储过程修改一下,如下所示:

复制代码 代码如下:
create proc proc_1
@uid int,
@pwd varchar(255),
@username varchar(255) output --这里我们增加一个输出变量,记得加上output
as
select @username=username from users where uid = @uid and password = @pwd
go

--以下是在查询分析器中调用的方法
declare @n varchar(255) --声明一个变量用来传递参数
exec proc_1 1,admin,@n output --注,要标记为output变量
print @n

下面我们看看在vs.net 中的调用方式:

复制代码 代码如下:
sqlconnection conn = new sqlconnection("server=(local);database=sql1;uid=sa;pwd=");
conn.open();
sqlcommand cmd = new sqlcommand("proc_1", conn);
cmd.commandtype = commandtype.storedprocedure;
cmd.parameters.addwithvalue("uid", 1);
cmd.parameters.addwithvalue("pwd", "admin");
cmd.parameters.add("username", sqldbtype.varchar, 255);
cmd.parameters["username"].direction = parameterdirection.output;//设置参数为输出参数
cmd.executenonquery();
string sname = (string)cmd.parameters["username"].value;//获取输出参数的值
response.write(sname);
conn.close();

这样,便很简单的实现了调用存储过程的方法。

希望本文所述对大家的c#程序设计有所帮助。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网