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

所属分类: 软件编程 / C#教程 阅读数: 160
收藏 0 赞 0 分享

本文实例总结了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#程序设计有所帮助。

更多精彩内容其他人还在看

c#开发word批量转pdf源码分享

已经安装有Office环境,借助一些简单的代码即可实现批量Word转PDF,看下面的实例源码吧
收藏 0 赞 0 分享

c# xml API操作的小例子

这篇文章主要介绍了c# xml API操作的小例子,有需要的朋友可以参考一下
收藏 0 赞 0 分享

c#唯一值渲染实例代码

这篇文章主要介绍了c#唯一值渲染实例代码,有需要的朋友可以参考一下
收藏 0 赞 0 分享

淘宝IP地址库采集器c#代码

这篇文章主要介绍了淘宝IP地址库采集器c#代码,有需要的朋友可以参考一下
收藏 0 赞 0 分享

C#在后台运行操作(BackgroundWorker用法)示例分享

BackgroundWorker类允许在单独的专用线程上运行操作。如果需要能进行响应的用户界面,而且面临与这类操作相关的长时间延迟,则可以使用BackgroundWorker类方便地解决问题,下面看示例
收藏 0 赞 0 分享

c#文本加密程序代码示例

这是一个加密软件,但只限于文本加密,加了窗口控件的滑动效果,详细看下面的代码
收藏 0 赞 0 分享

c#生成站点地图(SiteMapPath)文件示例程序

这篇文章主要介绍了c#生成站点地图(SiteMapPath)文件的示例,大家参考使用
收藏 0 赞 0 分享

C# 键盘Enter键取代Tab键实现代码

这篇文章主要介绍了C# 键盘Enter键取代Tab键实现代码,有需要的朋友可以参考一下
收藏 0 赞 0 分享

C# WinForm导出Excel方法介绍

在.NET应用中,导出Excel是很常见的需求,导出Excel报表大致有以下三种方式:Office PIA,文件流和NPOI开源库,本文只介绍前两种方式
收藏 0 赞 0 分享

C#串口通信程序实例详解

在.NET平台下创建C#串口通信程序,.NET 2.0提供了串口通信的功能,其命名空间是System.IO.Ports,创建C#串口通信程序的具体实现是如何的呢?让我们开始吧
收藏 0 赞 0 分享
查看更多