這篇文章是ADO.NET的DataReader與SP(StoredProcedure)互相搭配之應用,因為看過網路上許多分享文章,並沒有詳細寫出過程,所以在此分享一些心得。

ADO.NET呼叫SP在業界是非常常用之做法,寫SP好處有以下幾點

1.一個SP可以執行一系列的sql指令。

2.SP可以參考其他的SP

3.SP建立完成後會再server的DB進行編譯,處理速度比SQL速度還快。

4.SP可以設定存取權限

 

Command物件呼叫SP和執行SQL敘述差不多,差別於呼叫SP需要再Clien端設定一些參數。分以下四種情形:

1.參數為輸入功能

2.參數為雙向,提供輸入與輸出

3.參數是輸出功能

4.可以回傳SP執行後回傳值

 

這個範例是用Command物件呼叫SP輸入參數之使用

以下分兩部分來建立:

 

1.SP

該SP名稱為:GetEmployeeByName

傳入之參數為@Empid

CREATE PROCEDURE [dbo].[GetEmployeeByName]
(
@Empid int
)
as
SELECT * FROM 員工 WHERE 員工編號 = @Empid
RETURN

 

2.ASP.NET程式部分

前端畫面:textbox輸入id,按下按鈕後代值給SP,SP執行完後給DataReader再給GV顯示資料。

擷取  

protected void DBInit()
{

//Step1:與資料庫連接

SqlConnection Conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["資料庫連線字串"].ConnectionString);
Conn.Open();

//Step2:

//A. cmd.CommandText = "GetEmployeeByName"; 用到的SP名稱

//B. Command物件之CommandType屬性設置為CommandType.StoredProcedure,代表要執行的是SP

SqlCommand cmd = new SqlCommand();
cmd.Connection = Conn;
cmd.CommandText = "GetEmployeeByName";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Empid", TextBox1.Text);
SqlDataReader dr = cmd.ExecuteReader();
GridView1.DataSource = dr;
GridView1.DataBind();
dr.Close();
}

protected void Button1_Click(object sender, EventArgs e)
{
DBInit();
}

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 melomelo1988 的頭像
    melomelo1988

    melo 唐

    melomelo1988 發表在 痞客邦 留言(0) 人氣()