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

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

(0)

相关推荐

  • c#中两种不同的存储过程调用与比较

    存储过程的调用在B/S系统中用的很多.传统的调用方法不仅速度慢,而且代码会随着存储过程的增多不断膨胀,难以维护.新的方法在一定程度上解决了这些问题. 在使用.NET的过程中,数据库访问是一个很重要的部分,特别是在B/S系统的构建过程中,数据库操作几乎成为了一个必不可少的操作.调用存储过程实现数据库操作使很多程序员使用的方法,而且大多数的程序员都是能使用存储过程就使用存储过程,很少直接使用SQL语句,所以存储过程是很有用而且很重要的. 存储过程简介 简单的说,存储过程是由一些SQL语句和控制语句组

  • C#获取存储过程返回值和输出参数值的方法

    1.获取Return返回值 复制代码 代码如下: //存储过程//Create PROCEDURE MYSQL//     @a int,//     @b int//AS//     return @a + @b//GOSqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());conn.Open();SqlCommand MyC

  • C#中GridView动态添加列的实现方法

    本文实例讲述了C#中GridView动态添加列的实现方法.分享给大家供大家参考.具体如下: protected void Page_Load(object sender, EventArgs e) { TemplateField mycustomField = new TemplateField(); //创建列实例 mycustomField.ShowHeader = true; // 设置属性 LinkButton lb = new LinkButton(); lb.Text = "Dele

  • C#调用Oracle存储过程的方法

    本文实例讲述了C#调用Oracle存储过程的方法.分享给大家供大家参考.具体实现方法如下: Oracle数据库代码如下: 复制代码 代码如下: create or replace procedure proce_test(paramin in varchar2,paramout out varchar2,paraminout in out varchar2) as   varparam varchar2(28); begin   varparam:=paramin;   paramout:=va

  • C#执行存储过程并将结果填充到GridView的方法

    本文实例讲述了C#执行存储过程并将结果填充到GridView的方法.分享给大家供大家参考,具体如下: SelectSql sq = new SelectSql(); SqlConnection conn = new SqlConnection(sq.lc); conn.Open(); SqlDataAdapter rd = new SqlDataAdapter(); DataSet ds=new DataSet(); SqlCommand sqlcom = new SqlCommand("dbo

  • C# Datagridview绑定List方法代码

    本文实例讲述了c# DatagridView绑定List的方法,分享给大家供大家参考.具体方法如下: 主要代码如下: IList<Person> lists; public Form2() { InitializeComponent(); lists = new BindingList<Person>(); lists.Add(new Person(2)); this.dataGridView1.DataSource = lists; } 希望本文所述对大家的C#程序设计有所帮助.

  • C#中常用的分页存储过程小结

    表中主键必须为标识列,[ID] int IDENTITY (1,1)//每次自增一 1.分页方案一:(利用Not In和SELECT TOP分页) 语句形式: 复制代码 代码如下: SELECT TOP 10 * FROM TestTable WHERE (ID NOT IN (SELECT TOP 20 id FROM TestTable ORDER BY id)) ORDER BY ID SELECT TOP 页大小 * FROM TestTable WHERE (ID NOT IN (SE

  • mssql 存储过程调用C#编写的DLL文件

    网上很有多类似的文章,但描述不完整,在某些关键的地方,少了相应的补充,以至于那些例子都无法测试通过. 我把其中的一种思路整理出来: 1. 准备DLL文件 首先,你需要新建一个类库工程,工程名没有要求,随意取为Test.新建一个类文件,例如: 复制代码 代码如下: using System; namespace Test { public class SayHello { public SayHello() { } public string Hi() { return "Hello!"

  • C# 调用存储过程简单完整的实例代码

    CREATE PROC P_TEST@Name VARCHAR(20), @Rowcount INT OUTPUT AS BEGIN SELECT * FROM T_Customer WHERE NAME=@Name SET @Rowcount=@@ROWCOUNT END GO ---------------------------------------------------------------------------------------- --存储过程调用如下: --------

  • c#调用存储过程实现登录界面详解

    1,创建存储过程 复制代码 代码如下: create proc Pro_Login(@UserName nvarchar(10),@PassWord nvarchar(10))as select * from [User] UserName=@UserName and PassWord=@PassWord 2,通过类是实现配置数据库字符串连接 复制代码 代码如下: class ConnectionString{public static string conStr = "Data Source=

  • C#中调用MySQL存储过程的方法

    本文实例讲述了C#中调用MySQL存储过程的方法.分享给大家供大家参考.具体如下: 这段代码演示在 C# 程序中调用 MySQL 的存储过程,没有返回值,没有参数传递. MySqlConnection myConnection; myConnection = new MySqlConnection(); myConnection.ConnectionString = "database="+database+";server="+ server+";use

  • C# DatagridView常用操作汇总

    本文汇总了C#中DatagridView的常用操作,有助于读者加深对C# DatagridView用法的理解,具体如下: 1.(最基本的技巧).获取某列中的某行(某单元格)中的内容 this.currentposition = this.dataGridView1.BindingContext [this.dataGridView1.DataSource, this.dataGridView1.DataMember].Position; bookContent = this.database.d

随机推荐