- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在C#中使用存储过程
本文以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 test55add 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.Directio
文档评论(0)