創建儲存過程
create procedure elogin_ws
as
select 中文姓名,nt from elogin1
go
//程序代碼
private void Page_Load(object sender, System.EventArgs e)
{
// 在這裡放置使用者程式碼以初始化網頁
//連接字符串
string connstr="server=10.64.2.80;user id=ieb;pwd=ieb;database=cust";
// string connstr="server=10.64.2.80;User id=ieb;Pwd=ieb;DataBase=cust";
//創建Connection對象
SqlConnection myconn=new SqlConnection(connstr);
//創建Command對象並和Connection對象關聯
SqlCommand mycommand=new SqlCommand();
mycommand.Connection=myconn;
//指定要執行儲存過程名稱
mycommand.CommandText="elogin_ws";
//使用要執行的是儲存過程
mycommand.CommandType=CommandType.StoredProcedure;
//創建DataAdapter對象並填充數據
DataSet myds=new DataSet();
SqlDataAdapter adapter=new SqlDataAdapter(mycommand);
adapter.Fill(myds,"elogin1");
//將返回的數據和DataGrid綁定顯示
this.DataGrid1.DataSource=myds.Tables["elogin1"];
this.DataGrid1.DataBind();
}
主要看下面的代碼,CommandText屬性在這裡沒有指定要執行的SQL語句,而是指定了儲存過程名稱,怎麼區別CommandText屬性值是SQL語句或者儲存過程呢,CommandType屬性用來說明CommandText屬性值類型,默認值是CommandType.Text.
//儲存過程
mycommand.CommandText="elogin_ws";
//使用要執行的是儲存過程
mycommand.CommandType=CommandType.StoredProcedure;
//執行SQL命令的代碼
//SQL語句
mycommand.CommandText=”select 中文姓名,nt from elogin1”;
//指定執行類型
myCommand.CommandType=CommandType.Text.
儲存過程相比SQL語句方式有以下的好處:
1,可以接受輸入函數,並以輸出參數的形式將多個值返回至調用過程或批處理
2,可以向調用過程或批處理返回狀態值,以表明成功或失敗(以及失敗的原因)
3,允許模塊化程序設計.只需創建儲存過程一次並將其儲存在數據庫中,以後即可在程序中調用改過程任意次.儲存過程可由在數據庫編程方面有專長的人員創建,並可獨立于程序源代碼而單獨修改.
4,減少網羅流量,儲存過程的主體儲存在數據庫服務器端,程序中調用時只需要傳遞儲存過程的名稱即可.SQL語句需要將語句主體傳遞到數據庫服務器端,在數據庫與程序執行端分別是兩台主機的情況下,SQL語句方式會占用更大的網羅流量.