成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發 后端
本文以Sql Server2000為例,示例數據庫為china,表為test,來說明以C#中使用存儲過程的方法。

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

  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)  

創建一個有輸入、輸出、返回值參數的存儲過程:

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#中使用存儲過程:

使用帶有參數的sql語句

  1. private void sql_param()  
  2.   {  
  3.  
  4.   SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=1234;database=china");  
  5.     
  6.   //在sql語句當中引入了@myid參數  
  7.   string sql="select * from test where uid>@myid";  
  8.   SqlCommand comm=new SqlCommand(sql,conn);  
  9.            
  10.   //使用comm的Parameters屬性的add方法,對上述的@myid參數進行定義和賦值  
  11.   //SqlDbType類提供了與SqlServer數據類型一致的數據庫類型  
  12.   SqlParameter sp=comm.Parameters.Add("@myid",SqlDbType.Int);  
  13.   sp.Value=10;//對輸入參數賦值  
  14.       
  15.   //Command對象默認的執行方式為Text,不寫下句亦可  
  16.   comm.CommandType=CommandType.Text;  
  17.     
  18.   //將Command對象作為DataAdapter的參數傳進  
  19.   SqlDataAdapter da=new SqlDataAdapter(comm);  
  20.   DataSet ds=new DataSet();  
  21.   da.Fill(ds);  
  22.  
  23.         //綁定數據到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執行類型改為存儲過程方式,默認為Text。  
  9.     comm.CommandType=CommandType.StoredProcedure;  
  10.  
  11.     //傳遞一個輸入參數,需賦值  
  12.     SqlParameter sp=comm.Parameters.Add("@uid",SqlDbType.Int);  
  13.     sp.Value=10;  
  14.  
  15.     //定義一個輸出參數,不需賦值。Direction用來描述參數的類型  
  16.     //Direction默認為輸入參數,還有輸出參數和返回值型。  
  17.     sp=comm.Parameters.Add("@output",SqlDbType.VarChar,50);  
  18.     sp.Direction=ParameterDirection.Output;  
  19.  
  20.     //定義過程的返回值參數,過程執行完之后,將把過程的返回值賦值給名為myreturn的Paremeters賦值。  
  21.     sp=comm.Parameters.Add("myreturn",SqlDbType.Int);  
  22.     sp.Direction=ParameterDirection.ReturnValue;  
  23.      
  24.     //使用SqlDataAdapter將自動完成數據庫的打開和關閉過程,并執行相應t-sql語句或存儲過程  
  25.     //如果存儲過程只是執行相關操作,如級聯刪除或更新,使用SqlCommand的execute方法即可。  
  26.     SqlDataAdapter da=new SqlDataAdapter(comm);  
  27.     DataSet ds=new DataSet();  
  28.     da.Fill(ds);  
  29.      
  30.      
  31.     //在執行完存儲過程之后,可得到輸出參數   
  32.     string myout=comm.Parameters["@output"].Value.ToString();  
  33.      
  34.     //打印輸出參數:  
  35.     Response.Write("打印輸出參數:"+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 過程名 參數  
  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將自動完成數據庫的打開和關閉過程,并執行相應t-sql語句或存儲過程  
  11.    //如果存儲過程只是執行相關操作,如級聯刪除或更新,使用SqlCommand的execute方法即可。  
  12.    SqlDataAdapter da=new SqlDataAdapter(comm);  
  13.    DataSet ds=new DataSet();  
  14.    da.Fill(ds);  
  15.     
  16.    //綁定數據  
  17.    this.DataGrid1.DataSource=ds;  
  18.    this.DataGrid1.DataBind();  
  19.     
  20.    }  
  21.  

總結與理解

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

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

【編輯推薦】

  1. C#基礎知識一覽
  2. 學習C#自定義用戶控件
  3. C#自定義組件和用戶組件屬性的設置
  4. C#編程中的組件-事件-委托
  5. Visual C#自定義組件的設計:Pop3Com組件
責任編輯:book05 來源: cnblogs
相關推薦

2009-08-17 18:30:29

C# SQL Serv

2020-12-31 07:31:10

C# 反射數據

2010-06-18 10:34:38

SQL Server

2021-03-07 16:37:52

C#應用程序

2021-02-01 12:36:59

C# Channels存儲

2012-03-08 10:18:33

JavaOracle

2010-07-08 17:15:04

SQL Server存

2021-01-19 05:30:55

C# 8異步流IEnumerable

2021-01-18 05:18:18

C# 8模式C# 7

2010-06-30 14:36:49

SQL Server

2021-01-22 05:53:08

C# IndexRange

2021-01-28 05:14:40

C#接口簽名

2010-09-14 10:16:57

sql server

2010-09-14 10:36:23

sql server存

2009-08-06 16:18:38

C#調用SQL存儲過程

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

2009-08-13 17:58:34

C#存儲過程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区二区三区在线 | 欧美aaa级 | 黄色av观看| 国产久| 狠狠伊人 | 91精品国产一区二区三区动漫 | 久久美女视频 | 成人国产一区二区三区精品麻豆 | 二区成人 | av看看| 国产一区二区三区久久久久久久久 | 亚洲乱码国产乱码精品精的特点 | 一区二区三区视频播放 | 一区二区三区久久 | 久久人爽 | 亚洲成av人片在线观看 | 丁香五月缴情综合网 | 岛国av免费在线观看 | 偷拍自拍网站 | 亚洲一级二级三级 | 成人午夜电影网 | 国产精品一区二区欧美黑人喷潮水 | 不卡一二区 | 在线看av网址 | 中文字幕蜜臀av | 国产乱码精品一区二区三区忘忧草 | 欧美一区二区在线看 | 婷婷91 | 黄色a级一级片 | 国产高清精品一区二区三区 | 亚洲91精品 | 亚洲第1页 | 高清人人天天夜夜曰狠狠狠狠 | 国家一级黄色片 | 久久久久精 | a视频在线观看 | 日韩国产三区 | 国产福利在线 | 日韩午夜精品 | 亚洲福利网 | 国产精品久久亚洲 |