您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關C#中怎么調用SQL存儲過程,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
C#調用SQL存儲過程理論知識
1、獲得存儲過程中return語句返回的整個存儲過程函數的返回值:
//獲得存儲過程return的值,定義一個參數,指明其作用是接受return的值
CmdObj.Parameters.Add("RETURN_VALUE", SqlDbType.Int).Direction =ParameterDirection.ReturnValue;
通過獲取該參數的方式最終獲得return返回的值
int reValue = int.Parse(CmdObj.Parameters["RETURN_VALUE"].Value.ToString());
2、獲得存儲過程輸出參數的值:
定義sql的參數,指定類型是輸出
CmdObj.Parameters.Add("@outValue", SqlDbType.VarChar).Direction =ParameterDirection.Output;
獲得輸出參數的值
string outValue = CmdObj.Parameters["@outValue"].Value.ToString();
總結,關鍵地方就是指明參數的Direction 屬性,使用ParameterDirection來指定,可以指定4種類型,
輸入,
輸出,
既是輸入又是輸出,
接受return
C#調用SQL存儲過程示例演示
/** * 存儲過程 * create procedure queryStuNameById ( @stuId varchar(10),--輸入參數 @stuName varchar(10) output --輸出參數 ) as select @stuName=stuName from stuInfo where stuId=@stuId * */
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; namespace StoreProduceTest { public class Program { static void Main(string[] args) { Operater op = new Operater(); string name = op.QueryStuNameById("1234"); Console.WriteLine(string.Format("學號為1234的學生的姓名為{0}", name)); } } public class Operater { private string ConStr = "server=.;database=User;uid=sa;pwd=1234"; private SqlConnection sqlCon = null; private SqlCommand sqlComm = null; SqlDataReader dr = null; public string QueryStuNameById(string Id) { string name = ""; try { using (sqlCon = new SqlConnection(ConStr)) { sqlCon.Open(); sqlComm = new SqlCommand("queryStuNameById", sqlCon); //設置命令的類型為存儲過程 sqlComm.CommandType = CommandType.StoredProcedure; //設置參數 sqlComm.Parameters.Add("@stuId", SqlDbType.VarChar); //注意輸出參數要設置大小,否則size默認為0, sqlComm.Parameters.Add("@stuName", SqlDbType.VarChar, 10); //設置參數的類型為輸出參數,默認情況下是輸入, sqlComm.Parameters["@stuName"].Direction = ParameterDirection.Output; //為參數賦值 sqlComm.Parameters["@stuId"].Value = "1234"; //執行 sqlComm.ExecuteNonQuery(); //得到輸出參數的值,把賦值給name,注意,這里得到的是object類型的,要進行相應的類型輪換 name = sqlComm.Parameters["@stuName"].Value.ToString(); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } return name; } } }
看完上述內容,你們對C#中怎么調用SQL存儲過程有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。