2023年6月21日发(作者:)
C#中使⽤sql存储过程的⽅法。本⽂以Sql Server2000为例,⽰例数据库为china,表为test,来说明以C#中使⽤sql存储过程的⽅法。⼀、test表的创建sql语句:create table test(uid int identity(1,1),class1 varchar(20),class2 varchar(20),uname varchar(20),birth smalldatetime,meno varchar(50))alter table testadd constraint primary_id primary key(uid)⼆、创建⼀个有输⼊、输出、返回值参数的存储过程:create proc proc_out @uid int,@output varchar(200) outputas--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=("@myid",);=10;//对输⼊参数赋值//Command对象默认的执⾏⽅式为Text,不写下句亦可dType=;//将Command对象作为DataAdapter的参数传进SqlDataAdapter da=new SqlDataAdapter(comm);DataSet ds=new DataSet();(ds);//绑定数据到DataGrid1控件上urce=ds;nd();}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。dType=Procedure;//传递⼀个输⼊参数,需赋值SqlParameter sp=("@uid",);=10;//定义⼀个输出参数,不需赋值。Direction⽤来描述参数的类型//Direction默认为输⼊参数,还有输出参数和返回值型。sp=("@output",r,50);ion=;//定义过程的返回值参数,过程执⾏完之后,将把过程的返回值赋值给名为myreturn的Paremeters赋值。sp=("myreturn",);ion=Value;//使⽤SqlDataAdapter将⾃动完成数据库的打开和关闭过程,并执⾏相应t-sql语句或存储过程//如果存储过程只是执⾏相关操作,如级联删除或更新,使⽤SqlCommand的execute⽅法即可。SqlDataAdapter da=new SqlDataAdapter(comm);DataSet ds=new DataSet();(ds);//在执⾏完存储过程之后,可得到输出参数
string myout=ters["@output"].ng();//打印输出参数:("打印输出参数:"+myout);//打印存储过程返回值myout=ters["myreturn"].ng();("存储过程返回值:"+myout);urce=ds;nd();}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();(ds);//绑定数据urce=ds;nd();}四、总结与理解:SqlCommand类,提供了对t-sql语句和存储过程的执⾏能⼒;它不只能执⾏某⼀个sql语句,亦可执⾏⼀组sql语句,如创建表,修改表等,可以这样理解,对于sql server⽽⾔,只要在查询分析器中可执⾏的⼀组语句,通过SqlCommand同样能得到很好的执⾏。SqlCommand默认执⾏⽅式,是执⾏t-sql语句,即dType=。在执⾏存储过程时,可以⽤"exec 过程名 参数"的形式,将其作为t-sql语句,来执⾏,也可以将SqlCommand的执⾏⽅式改为执⾏过程⽅式,即dType=Procedure;两种执⾏存储过程⽅式的主要区别是,前者在获得输出参数和返回值上,很困难;后者是全⾯的,也是微软专门为执⾏存储过程⽽定义的全⾯策略
2023年6月21日发(作者:)
C#中使⽤sql存储过程的⽅法。本⽂以Sql Server2000为例,⽰例数据库为china,表为test,来说明以C#中使⽤sql存储过程的⽅法。⼀、test表的创建sql语句:create table test(uid int identity(1,1),class1 varchar(20),class2 varchar(20),uname varchar(20),birth smalldatetime,meno varchar(50))alter table testadd constraint primary_id primary key(uid)⼆、创建⼀个有输⼊、输出、返回值参数的存储过程:create proc proc_out @uid int,@output varchar(200) outputas--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=("@myid",);=10;//对输⼊参数赋值//Command对象默认的执⾏⽅式为Text,不写下句亦可dType=;//将Command对象作为DataAdapter的参数传进SqlDataAdapter da=new SqlDataAdapter(comm);DataSet ds=new DataSet();(ds);//绑定数据到DataGrid1控件上urce=ds;nd();}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。dType=Procedure;//传递⼀个输⼊参数,需赋值SqlParameter sp=("@uid",);=10;//定义⼀个输出参数,不需赋值。Direction⽤来描述参数的类型//Direction默认为输⼊参数,还有输出参数和返回值型。sp=("@output",r,50);ion=;//定义过程的返回值参数,过程执⾏完之后,将把过程的返回值赋值给名为myreturn的Paremeters赋值。sp=("myreturn",);ion=Value;//使⽤SqlDataAdapter将⾃动完成数据库的打开和关闭过程,并执⾏相应t-sql语句或存储过程//如果存储过程只是执⾏相关操作,如级联删除或更新,使⽤SqlCommand的execute⽅法即可。SqlDataAdapter da=new SqlDataAdapter(comm);DataSet ds=new DataSet();(ds);//在执⾏完存储过程之后,可得到输出参数
string myout=ters["@output"].ng();//打印输出参数:("打印输出参数:"+myout);//打印存储过程返回值myout=ters["myreturn"].ng();("存储过程返回值:"+myout);urce=ds;nd();}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();(ds);//绑定数据urce=ds;nd();}四、总结与理解:SqlCommand类,提供了对t-sql语句和存储过程的执⾏能⼒;它不只能执⾏某⼀个sql语句,亦可执⾏⼀组sql语句,如创建表,修改表等,可以这样理解,对于sql server⽽⾔,只要在查询分析器中可执⾏的⼀组语句,通过SqlCommand同样能得到很好的执⾏。SqlCommand默认执⾏⽅式,是执⾏t-sql语句,即dType=。在执⾏存储过程时,可以⽤"exec 过程名 参数"的形式,将其作为t-sql语句,来执⾏,也可以将SqlCommand的执⾏⽅式改为执⾏过程⽅式,即dType=Procedure;两种执⾏存储过程⽅式的主要区别是,前者在获得输出参数和返回值上,很困难;后者是全⾯的,也是微软专门为执⾏存储过程⽽定义的全⾯策略
发布评论