C#調(diào)用SQL存儲過程示例演示
C#調(diào)用SQL存儲過程理論知識
下面的CmdObj.是定義的SqlCommand對象
1、獲得存儲過程中return語句返回的整個存儲過程函數(shù)的返回值:
//獲得存儲過程return的值,定義一個參數(shù),指明其作用是接受return的值
CmdObj.Parameters.Add("RETURN_VALUE", SqlDbType.Int).Direction =ParameterDirection.ReturnValue;
通過獲取該參數(shù)的方式最終獲得return返回的值
int reValue = int.Parse(CmdObj.Parameters["RETURN_VALUE"].Value.ToString());
2、獲得存儲過程輸出參數(shù)的值:
定義sql的參數(shù),指定類型是輸出
CmdObj.Parameters.Add("@outValue", SqlDbType.VarChar).Direction =ParameterDirection.Output;
獲得輸出參數(shù)的值
string outValue = CmdObj.Parameters["@outValue"].Value.ToString();
總結(jié),關(guān)鍵地方就是指明參數(shù)的Direction 屬性,使用ParameterDirection來指定,可以指定4種類型,
輸入,
輸出,
既是輸入又是輸出,
接受return
C#調(diào)用SQL存儲過程示例演示
- /**
 - * 存儲過程
 - *
 - create procedure queryStuNameById
 - (
 - @stuId varchar(10),--輸入?yún)?shù)
 - @stuName varchar(10) output --輸出參數(shù)
 - )
 - 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);
 - //設(shè)置命令的類型為存儲過程
 - sqlComm.CommandType = CommandType.StoredProcedure;
 - //設(shè)置參數(shù)
 - sqlComm.Parameters.Add("@stuId", SqlDbType.VarChar);
 - //注意輸出參數(shù)要設(shè)置大小,否則size默認為0,
 - sqlComm.Parameters.Add("@stuName", SqlDbType.VarChar, 10);
 - //設(shè)置參數(shù)的類型為輸出參數(shù),默認情況下是輸入,
 - sqlComm.Parameters["@stuName"].Direction = ParameterDirection.Output;
 - //為參數(shù)賦值
 - sqlComm.Parameters["@stuId"].Value = "1234";
 - //執(zhí)行
 - sqlComm.ExecuteNonQuery();
 - //得到輸出參數(shù)的值,把賦值給name,注意,這里得到的是object類型的,要進行相應(yīng)的類型輪換
 - name = sqlComm.Parameters["@stuName"].Value.ToString();
 - }
 - }
 - catch (Exception ex)
 - {
 - Console.WriteLine(ex.ToString());
 - }
 - return name;
 - }
 - }
 - }
 
C#調(diào)用SQL存儲過程就給大家演示到這里,希望對大家有所幫助。
【編輯推薦】















 
 
 
 
 
 
 