日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
如何在C#中使用存儲(chǔ)過(guò)程(SQLServer2000)

要在C#中使用存儲(chǔ)過(guò)程,首先看看test表的創(chuàng)建sql語(yǔ)句:

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供煙臺(tái)網(wǎng)站建設(shè)、煙臺(tái)做網(wǎng)站、煙臺(tái)網(wǎng)站設(shè)計(jì)、煙臺(tái)網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、煙臺(tái)企業(yè)網(wǎng)站模板建站服務(wù),十載煙臺(tái)做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

 
 
 
  1. create table test55  
  2. (  
  3. uid int identity(1,1),  
  4. class1 varchar(20),  
  5. class2 varchar(20),  
  6. uname varchar(20),  
  7. birth smalldatetime,  
  8. meno varchar(50)  
  9. )  
  10.  
  11. alter table test55  
  12. add constraint primary_id primary key(uid)  

創(chuàng)建一個(gè)有輸入、輸出、返回值參數(shù)的存儲(chǔ)過(guò)程:

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

as

--select結(jié)果集

select * from test where uid>@uid

--對(duì)輸出參數(shù)進(jìn)行賦值

set @output='記錄總數(shù):'+convert(varchar(10),(select count(*) from test))

--使用return,給存儲(chǔ)過(guò)程一個(gè)返回值。

return 200;

go

在C#中使用存儲(chǔ)過(guò)程:

使用帶有參數(shù)的sql語(yǔ)句

 
 
 
  1. private void sql_param()  
  2.   {  
  3.  
  4.   SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=1234;database=china");  
  5.     
  6.   //在sql語(yǔ)句當(dāng)中引入了@myid參數(shù)  
  7.   string sql="select * from test where uid>@myid";  
  8.   SqlCommand comm=new SqlCommand(sql,conn);  
  9.            
  10.   //使用comm的Parameters屬性的add方法,對(duì)上述的@myid參數(shù)進(jìn)行定義和賦值  
  11.   //SqlDbType類提供了與SqlServer數(shù)據(jù)類型一致的數(shù)據(jù)庫(kù)類型  
  12.   SqlParameter sp=comm.Parameters.Add("@myid",SqlDbType.Int);  
  13.   sp.Value=10;//對(duì)輸入?yún)?shù)賦值  
  14.       
  15.   //Command對(duì)象默認(rèn)的執(zhí)行方式為Text,不寫(xiě)下句亦可  
  16.   comm.CommandType=CommandType.Text;  
  17.     
  18.   //將Command對(duì)象作為DataAdapter的參數(shù)傳進(jìn)  
  19.   SqlDataAdapter da=new SqlDataAdapter(comm);  
  20.   DataSet ds=new DataSet();  
  21.   da.Fill(ds);  
  22.  
  23.         //綁定數(shù)據(jù)到DataGrid1控件上  
  24.   this.DataGrid1.DataSource=ds;  
  25.   this.DataGrid1.DataBind();  
  26.    
  27.   }  

存儲(chǔ)過(guò)程的使用標(biāo)準(zhǔn)版  

 
 
 
  1. private void sql_proc()  
  2.    {  
  3.       
  4.     SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=1234;database=china");  
  5.     string sql="proc_out";  
  6.     SqlCommand comm=new SqlCommand(sql,conn);  
  7.      
  8.     //把Command執(zhí)行類型改為存儲(chǔ)過(guò)程方式,默認(rèn)為Text。  
  9.     comm.CommandType=CommandType.StoredProcedure;  
  10.  
  11.     //傳遞一個(gè)輸入?yún)?shù),需賦值  
  12.     SqlParameter sp=comm.Parameters.Add("@uid",SqlDbType.Int);  
  13.     sp.Value=10;  
  14.  
  15.     //定義一個(gè)輸出參數(shù),不需賦值。Direction用來(lái)描述參數(shù)的類型  
  16.     //Direction默認(rèn)為輸入?yún)?shù),還有輸出參數(shù)和返回值型。  
  17.     sp=comm.Parameters.Add("@output",SqlDbType.VarChar,50);  
  18.     sp.Direction=ParameterDirection.Output;  
  19.  
  20.     //定義過(guò)程的返回值參數(shù),過(guò)程執(zhí)行完之后,將把過(guò)程的返回值賦值給名為myreturn的Paremeters賦值。  
  21.     sp=comm.Parameters.Add("myreturn",SqlDbType.Int);  
  22.     sp.Direction=ParameterDirection.ReturnValue;  
  23.      
  24.     //使用SqlDataAdapter將自動(dòng)完成數(shù)據(jù)庫(kù)的打開(kāi)和關(guān)閉過(guò)程,并執(zhí)行相應(yīng)t-sql語(yǔ)句或存儲(chǔ)過(guò)程  
  25.     //如果存儲(chǔ)過(guò)程只是執(zhí)行相關(guān)操作,如級(jí)聯(lián)刪除或更新,使用SqlCommand的execute方法即可。  
  26.     SqlDataAdapter da=new SqlDataAdapter(comm);  
  27.     DataSet ds=new DataSet();  
  28.     da.Fill(ds);  
  29.      
  30.      
  31.     //在執(zhí)行完存儲(chǔ)過(guò)程之后,可得到輸出參數(shù)   
  32.     string myout=comm.Parameters["@output"].Value.ToString();  
  33.      
  34.     //打印輸出參數(shù):  
  35.     Response.Write("打印輸出參數(shù):"+myout);  
  36.  
  37.     //打印存儲(chǔ)過(guò)程返回值  
  38.     myout=comm.Parameters["myreturn"].Value.ToString();  
  39.     Response.Write("存儲(chǔ)過(guò)程返回值:"+myout);  
  40.  
  41.     this.DataGrid1.DataSource=ds;  
  42.     this.DataGrid1.DataBind();  
  43.  
  44.  
  45.    }  
  46.  

存儲(chǔ)過(guò)程的使用最簡(jiǎn)版: 

 
 
 
  1. private void sql_jyh()  
  2.    {  
  3.  
  4.    //最簡(jiǎn)寫(xiě)法,把存儲(chǔ)過(guò)程當(dāng)作t-sql語(yǔ)句來(lái)使用,語(yǔ)法為:exec 過(guò)程名 參數(shù)  
  5.  
  6.    SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=1234;database=china");  
  7.    string sql="execute proc_out 10,'12'";  
  8.    SqlCommand comm=new SqlCommand(sql,conn);  
  9.     
  10.    //使用SqlDataAdapter將自動(dòng)完成數(shù)據(jù)庫(kù)的打開(kāi)和關(guān)閉過(guò)程,并執(zhí)行相應(yīng)t-sql語(yǔ)句或存儲(chǔ)過(guò)程  
  11.    //如果存儲(chǔ)過(guò)程只是執(zhí)行相關(guān)操作,如級(jí)聯(lián)刪除或更新,使用SqlCommand的execute方法即可。  
  12.    SqlDataAdapter da=new SqlDataAdapter(comm);  
  13.    DataSet ds=new DataSet();  
  14.    da.Fill(ds);  
  15.     
  16.    //綁定數(shù)據(jù)  
  17.    this.DataGrid1.DataSource=ds;  
  18.    this.DataGrid1.DataBind();  
  19.     
  20.    }  
  21.  

總結(jié)與理解

SqlCommand類,提供了對(duì)t-sql語(yǔ)句和存儲(chǔ)過(guò)程的執(zhí)行能力;它不只能執(zhí)行某一個(gè)sql語(yǔ)句,亦可執(zhí)行一組sql語(yǔ)句,如創(chuàng)建表,修改表等,可以這樣理解,對(duì)于sql server而言,只要在查詢分析器中可執(zhí)行的一組語(yǔ)句,通過(guò)SqlCommand同樣能得到很好的執(zhí)行。SqlCommand默認(rèn)執(zhí)行方式,是執(zhí)行t-sql語(yǔ)句,即comm.CommandType=CommandType.Text。在執(zhí)行存儲(chǔ)過(guò)程時(shí),可以用"exec 過(guò)程名 參數(shù)"的形式,將其作為t-sql語(yǔ)句,來(lái)執(zhí)行,也可以將SqlCommand的執(zhí)行方式改為執(zhí)行過(guò)程方式,即comm.CommandType=CommandType.StoredProcedure;兩種執(zhí)行存儲(chǔ)過(guò)程方式的主要區(qū)別是,前者在獲得輸出參數(shù)和返回值上,很困難;后者是全面的,也是微軟專門為執(zhí)行存儲(chǔ)過(guò)程而定義的全面策略。

以上就是在C#中使用存儲(chǔ)過(guò)程的方法。


網(wǎng)頁(yè)題目:如何在C#中使用存儲(chǔ)過(guò)程(SQLServer2000)
標(biāo)題鏈接:http://www.5511xx.com/article/dpoiids.html