All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
PHP+MySQL扎实基本功_[PHP教程]
如何在OS,X系统上配置Apache、PHP和MySQL_php资料_编程技术
在C#中使用.chm帮助文件
在.NET2.0中使用自定义事务操作_[Asp.Net教程]
C#代码与javaScript函数的相互调用_[Asp.Net教程]
visual c++中的组合框控件(Combo Box)
GridViewRow可以任意位置单击引发事件的方法_[Asp.Net教程]
使用.NET存储XML数据_[Asp.Net教程]
技巧:用PHP程序计算时间差的几种方法_php资料_编程技术
利用ASP.NET,DataGrid显示主次关系的数据_[Asp.Net教程]
Reading number is top 10 pictures
The money of more than 100 countries and regions2
赵惟依写真1
我国房地产真相
XuYing poker perspective garment debut
做运动的校花1
穷哥们向美女求婚攻略
Beauty is thus produced
这年头,找个靠谱的妹子太难了
30 beautiful school beauty4
Shandong jinan is about to dismantle a one hundred-year history of the building
Download software ranking
Unix video tutorial5
打鸟视频
I'm come from Beijing2
Tram sex maniac 2 (H) rar bag12
Eclipse-CALMSANNY (second edition)
Ashlynn Video4
Proficient in Eclipse
Unix video tutorial17
Boxer's Top ten classic battle3
都市狐狸姑娘传
delv published in(发表于) 2014/1/24 9:15:40 Edit(编辑)
在C#中使用存储过程_[Asp.Net教程]

在C#中使用存储过程_[Asp.Net教程]

在C#中使用存储过程_[Asp.Net教程]

本文以Sql Server2000为例,示例数据库为china,表为test,来说明以C#中使用sql存储过程的方法。

一、test表的创建sql语句:


create table test55
(
uid int identity(1,1),
class1 varchar(20),
class2 varchar(20),
uname varchar(20),
birth smalldatetime,
meno varchar(50)
)


alter table test55
add constraint primary_id primary key(uid)


二、创建一个有输入、输出、返回值参数的存储过程:


create proc proc_out @uid int,@output varchar(200) output


as


--select结果集


select * from test where uid>@uid



--对输出参数进行赋值


set @output='记录总数:'+convert(varchar(10),(select count(*) from test))


--使用return,给存储过程一个返回值。


return 200;


go



三、在C#中,操作存储过程:

3.1 使用带有参数的sql语句


private void sql_param()
{


SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=1234;database=china");

//在sql语句当中引入了@myid参数
string sql="select * from test where uid>@myid";
SqlCommand comm=new SqlCommand(sql,conn);

//使用comm的Parameters属性的add方法,对上述的@myid参数进行定义和赋值
//SqlDbType类提供了与SqlServer数据类型一致的数据库类型
SqlParameter sp=comm.Parameters.Add("@myid",SqlDbType.Int);
sp.Value=10;//对输入参数赋值

//Command对象默认的执行方式为Text,不写下句亦可
comm.CommandType=CommandType.Text;

//将Command对象作为DataAdapter的参数传进
SqlDataAdapter da=new SqlDataAdapter(comm);
DataSet ds=new DataSet();
da.Fill(ds);


//绑定数据到DataGrid1控件上
this.DataGrid1.DataSource=ds;
this.DataGrid1.DataBind();

}


3.2 存储过程的使用标准版


private void sql_proc()
{


SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=1234;database=china");
string sql="proc_out";
SqlCommand comm=new SqlCommand(sql,conn);

//把Command执行类型改为存储过程方式,默认为Text。
comm.CommandType=CommandType.StoredProcedure;


//传递一个输入参数,需赋值
SqlParameter sp=comm.Parameters.Add("@uid",SqlDbType.Int);
sp.Value=10;


//定义一个输出参数,不需赋值。Direction用来描述参数的类型
//Direction默认为输入参数,还有输出参数和返回值型。
sp=comm.Parameters.Add("@output",SqlDbType.VarChar,50);
sp.Direction=ParameterDirection.Output;


//定义过程的返回值参数,过程执行完之后,将把过程的返回值赋值给名为myreturn的Paremeters赋值。
sp=comm.Parameters.Add("myreturn",SqlDbType.Int);
sp.Direction=ParameterDirection.ReturnValue;

//使用SqlDataAdapter将自动完成数据库的打开和关闭过程,并执行相应t-sql语句或存储过程
//如果存储过程只是执行相关操作,如级联删除或更新,使用SqlCommand的execute方法即可。
SqlDataAdapter da=new SqlDataAdapter(comm);
DataSet ds=new DataSet();
da.Fill(ds);


//在执行完存储过程之后,可得到输出参数
string myout=comm.Parameters["@output"].Value.ToString();

//打印输出参数:
Response.Write("打印输出参数:"+myout);


//打印存储过程返回值
myout=comm.Parameters["myreturn"].Value.ToString();
Response.Write("存储过程返回值:"+myout);


this.DataGrid1.DataSource=ds;
this.DataGrid1.DataBind();


}


3.3 存储过程的使用最简版:


private void sql_jyh()
{


//最简写法,把存储过程当作t-sql语句来使用,语法为:exec 过程名 参数


SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=1234;database=china");
string sql="execute proc_out 10,'12'";
SqlCommand comm=new SqlCommand(sql,conn);

//使用SqlDataAdapter将自动完成数据库的打开和关闭过程,并执行相应t-sql语句或存储过程
//如果存储过程只是执行相关操作,如级联删除或更新,使用SqlCommand的execute方法即可。
SqlDataAdapter da=new SqlDataAdapter(comm);
DataSet ds=new DataSet();
da.Fill(ds);

//绑定数据
this.DataGrid1.DataSource=ds;
this.DataGrid1.DataBind();

}



四、总结与理解:

SqlCommand类,提供了对t-sql语句和存储过程的执行能力;它不只能执行某一个sql语句,亦可执行一组sql语句,如创建表,修改表等,可以这样理解,对于sql server而言,只要在查询分析器中可执行的一组语句,通过SqlCommand同样能得到很好的执行。SqlCommand默认执行方式,是执行t-sql语句,即comm.CommandType=CommandType.Text。在执行存储过程时,可以用"exec 过程名 参数"的形式,将其作为t-sql语句,来执行,也可以将SqlCommand的执行方式改为执行过程方式,即comm.CommandType=CommandType.StoredProcedure;两种执行存储过程方式的主要区别是,前者在获得输出参数和返回值上,很困难;后者是全面的,也是微软专门为执行存储过程而定义的全面策略。

来源:CSDN







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.