zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

c#方法存储 过程 调用 小结 sql2000
2023-06-13 09:15:29 时间

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

调试环境:VS.NET2005,SQL2000,WINDOWSXPsp2。

语言:C#

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

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

复制代码代码如下:

createprocproc_1
@uidint,
@pwdvarchar(255)
as
selectUserNamefromuserswhereuid=@uidandPassWord=@pwd
go

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

方法一:

复制代码代码如下:

SqlConnectionconn=newSqlConnection("server=(local);database=sql1;uid=sa;pwd=");
conn.Open();//打开数据库连接
SqlCommandcmd=newSqlCommand("execproc_1@uid=1,@pwd=admin",conn);//Command中写调用存储过程的语句
//大家应该看出来了和直接在查询分析器中执行很类似,“exec存储过程名@参数1=参数值,@参数2=参数值”
SqlDataReadersdr=cmd.ExecuteReader();//执行存储过程
while(sdr.Read())
{
   Response.Write(sdr["UserName"].ToString());//输出查询到的值
}
sdr.Close();
conn.Close();

方法二:

复制代码代码如下:SqlConnectionconn=newSqlConnection("server=(local);database=sql1;uid=sa;pwd=");
conn.Open();//打开数据库连接
SqlCommandcmd=newSqlCommand("proc_1",conn);//存储过程名
cmd.CommandType=CommandType.StoredProcedure;//设置命令类型为存储过程
SqlParameter[]param=newSqlParameter[]{
  newSqlParameter("uid",SqlDbType.Int,4),
  newSqlParameter("pwd",SqlDbType.VarChar,255),
};//定义参数,这些是存储过程中要调用的参数,也可以通过直接使用cmd.AddWithValue方法添加参数
param[0].Value=1;//给参数赋值
param[1].Value="admin";
cmd.Parameters.AddRange(param);//一定要记得将刚定义的参数添加到cmd的参数中,不然前面的参数就白弄了。
stringsname=(string)cmd.ExecuteScalar();//如果存储过程返回的是单个值,我们可以直接这样取出所要的值
Response.Write(sname);
sdr.Close();
conn.Close();

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

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

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

复制代码代码如下:createprocproc_1
@uidint,
@pwdvarchar(255),
@UserNamevarchar(255)output--这里我们增加一个输出变量,记得加上output
as
select@UserName=UserNamefromuserswhereuid=@uidandPassWord=@pwd
go

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

下面我们看看在VS.NET中的调用方式:

复制代码代码如下:SqlConnectionconn=newSqlConnection("server=(local);database=sql1;uid=sa;pwd=");
conn.Open();
SqlCommandcmd=newSqlCommand("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();
stringsname=(string)cmd.Parameters["username"].Value;//获取输出参数的值
Response.Write(sname);
conn.Close();

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

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