日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

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

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

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供煙臺網(wǎng)站建設(shè)、煙臺做網(wǎng)站、煙臺網(wǎng)站設(shè)計、煙臺網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、煙臺企業(yè)網(wǎng)站模板建站服務(wù),十載煙臺做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(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)建一個有輸入、輸出、返回值參數(shù)的存儲過程:

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

as

--select結(jié)果集

select * from test where uid>@uid

--對輸出參數(shù)進行賦值

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

--使用return,給存儲過程一個返回值。

return 200;

go

在C#中使用存儲過程:

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

 
 
 
  1. private void sql_param()  
  2.   {  
  3.  
  4.   SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=1234;database=china");  
  5.     
  6.   //在sql語句當中引入了@myid參數(shù)  
  7.   string sql="select * from test where uid>@myid";  
  8.   SqlCommand comm=new SqlCommand(sql,conn);  
  9.            
  10.   //使用comm的Parameters屬性的add方法,對上述的@myid參數(shù)進行定義和賦值  
  11.   //SqlDbType類提供了與SqlServer數(shù)據(jù)類型一致的數(shù)據(jù)庫類型  
  12.   SqlParameter sp=comm.Parameters.Add("@myid",SqlDbType.Int);  
  13.   sp.Value=10;//對輸入?yún)?shù)賦值  
  14.       
  15.   //Command對象默認的執(zhí)行方式為Text,不寫下句亦可  
  16.   comm.CommandType=CommandType.Text;  
  17.     
  18.   //將Command對象作為DataAdapter的參數(shù)傳進  
  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.   }  

存儲過程的使用標準版  

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

存儲過程的使用最簡版: 

 
 
 
  1. private void sql_jyh()  
  2.    {  
  3.  
  4.    //最簡寫法,把存儲過程當作t-sql語句來使用,語法為:exec 過程名 參數(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將自動完成數(shù)據(jù)庫的打開和關(guān)閉過程,并執(zhí)行相應t-sql語句或存儲過程  
  11.    //如果存儲過程只是執(zhí)行相關(guān)操作,如級聯(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類,提供了對t-sql語句和存儲過程的執(zhí)行能力;它不只能執(zhí)行某一個sql語句,亦可執(zhí)行一組sql語句,如創(chuàng)建表,修改表等,可以這樣理解,對于sql server而言,只要在查詢分析器中可執(zhí)行的一組語句,通過SqlCommand同樣能得到很好的執(zhí)行。SqlCommand默認執(zhí)行方式,是執(zhí)行t-sql語句,即comm.CommandType=CommandType.Text。在執(zhí)行存儲過程時,可以用"exec 過程名 參數(shù)"的形式,將其作為t-sql語句,來執(zhí)行,也可以將SqlCommand的執(zhí)行方式改為執(zhí)行過程方式,即comm.CommandType=CommandType.StoredProcedure;兩種執(zhí)行存儲過程方式的主要區(qū)別是,前者在獲得輸出參數(shù)和返回值上,很困難;后者是全面的,也是微軟專門為執(zhí)行存儲過程而定義的全面策略。

以上就是在C#中使用存儲過程的方法。


文章名稱:如何在C#中使用存儲過程(SQLServer2000)
文章源于:http://www.dlmjj.cn/article/dpoiids.html