自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在C#中使用存儲(chǔ)過(guò)程(SQL Server 2000)

開發(fā) 后端
本文以Sql Server2000為例,示例數(shù)據(jù)庫(kù)為china,表為test,來(lái)說(shuō)明以C#中使用存儲(chǔ)過(guò)程的方法。

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

  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,不寫下句亦可  
  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ù)的打開和關(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)寫法,把存儲(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ù)的打開和關(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ò)程的方法。

【編輯推薦】

  1. C#基礎(chǔ)知識(shí)一覽
  2. 學(xué)習(xí)C#自定義用戶控件
  3. C#自定義組件和用戶組件屬性的設(shè)置
  4. C#編程中的組件-事件-委托
  5. Visual C#自定義組件的設(shè)計(jì):Pop3Com組件
責(zé)任編輯:book05 來(lái)源: cnblogs
相關(guān)推薦

2009-08-17 18:30:29

C# SQL Serv

2010-06-18 10:34:38

SQL Server

2020-12-31 07:31:10

C# 反射數(shù)據(jù)

2021-02-01 12:36:59

C# Channels存儲(chǔ)

2010-07-08 17:15:04

SQL Server存

2021-03-07 16:37:52

C#應(yīng)用程序

2010-06-30 14:36:49

SQL Server

2012-03-08 10:18:33

JavaOracle

2021-01-18 05:18:18

C# 8模式C# 7

2021-01-19 05:30:55

C# 8異步流IEnumerable

2010-09-14 10:16:57

sql server

2009-08-06 16:18:38

C#調(diào)用SQL存儲(chǔ)過(guò)程

2021-01-22 05:53:08

C# IndexRange

2021-01-28 05:14:40

C#接口簽名

2010-09-14 10:36:23

sql server存

2011-09-01 13:09:58

SQL Server DataTable作為

2021-11-25 00:04:16

C# 插值字符串

2010-10-20 16:17:17

SQL Server角

2009-08-06 16:44:06

2010-07-15 12:38:14

SQL Server存
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)