溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#中如何使用存儲過程

發布時間:2021-07-07 16:02:14 來源:億速云 閱讀:264 作者:Leah 欄目:編程語言

這篇文章給大家介紹C#中如何使用存儲過程,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

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

create table test55  (  uid int identity(1,1),  class1 varchar(20),  class2 varchar(20),  uname varchar(20),  birth smalldatetime,  meno varchar(50)  )   alter table test55  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語句

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=comm.Parameters.Add("@myid",SqlDbType.Int);    sp.Value=10;//對輸入參數賦值          //Command對象默認的執行方式為Text,不寫下句亦可    comm.CommandType=CommandType.Text;        //將Command對象作為DataAdapter的參數傳進    SqlDataAdapter da=new SqlDataAdapter(comm);    DataSet ds=new DataSet();    da.Fill(ds);           //綁定數據到DataGrid1控件上    this.DataGrid1.DataSource=ds;    this.DataGrid1.DataBind();       }

存儲過程的使用標準版  

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。      comm.CommandType=CommandType.StoredProcedure;       //傳遞一個輸入參數,需賦值      SqlParameter sp=comm.Parameters.Add("@uid",SqlDbType.Int);      sp.Value=10;       //定義一個輸出參數,不需賦值。Direction用來描述參數的類型      //Direction默認為輸入參數,還有輸出參數和返回值型。      sp=comm.Parameters.Add("@output",SqlDbType.VarChar,50);      sp.Direction=ParameterDirection.Output;       //定義過程的返回值參數,過程執行完之后,將把過程的返回值賦值給名為myreturn的Paremeters賦值。      sp=comm.Parameters.Add("myreturn",SqlDbType.Int);      sp.Direction=ParameterDirection.ReturnValue;           //使用SqlDataAdapter將自動完成數據庫的打開和關閉過程,并執行相應t-sql語句或存儲過程      //如果存儲過程只是執行相關操作,如級聯刪除或更新,使用SqlCommand的execute方法即可。      SqlDataAdapter da=new SqlDataAdapter(comm);      DataSet ds=new DataSet();      da.Fill(ds);                //在執行完存儲過程之后,可得到輸出參數       string myout=comm.Parameters["@output"].Value.ToString();           //打印輸出參數:      Response.Write("打印輸出參數:"+myout);       //打印存儲過程返回值      myout=comm.Parameters["myreturn"].Value.ToString();      Response.Write("存儲過程返回值:"+myout);       this.DataGrid1.DataSource=ds;      this.DataGrid1.DataBind();       }

存儲過程的使用最簡版: 

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();     da.Fill(ds);         //綁定數據     this.DataGrid1.DataSource=ds;     this.DataGrid1.DataBind();         }

總結與理解

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

關于C#中如何使用存儲過程就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女