如果程式有一段sql需要重複用,而後台資料庫是sqlserver或oracle則可以把這些sql寫成乙個儲存過程,這樣使用起來方便而且減輕了網路流量,資料庫執行起來更快些.
例:create procedure get_class_count
@class_id int , /*定義乙個引數型別是int*/
@start_date datetime=null,
/*"="的做用是設定該引數的預設值,這樣在呼叫時可以不給此引數賦值*/
@end _date datetime=null
as /***段開始*/
if start_date is null
select count(count_id) from class_count where
count_class=@class_id
else
select count(count_id from class_count where
count_class=@class_id and count_date>=@start_date and count_date <=@end_date
go可以在c#中寫乙個函式,來呼叫這個儲存過程
乙個引數的呼叫函式
private int get_class_count(int c_id)
catch( exception e)
finally
}
三個引數的呼叫函式
public int get_class_count(int id,string s_date,string e_date)
getconnect conn=new getconnect();
if (conn.conn.state.tostring()=="closed")
sqlcommand cmd=new sqlcommand();
cmd.commandtype=commandtype.storedprocedure;
cmd.commandtext="get_class_count";
cmd.parameters.add(new sqlparameter("@class_id",sqldbtype.int));
cmd.parameters["@class_id"].value=id;
cmd.parameters.add(new sqlparameter("@start_date",sqldbtype.datetime));
cmd.parameters["@start_date"].value=s_date;
cmd.parameters.add(new sqlparameter("@end_date",sqldbtype.datetime));
cmd.parameters["@end_date"].value=e_date;
trycatch(exception e)
finally
}
儲存過程的編寫
這些是 sql 92 設定語句,使 mssql 遵從 sql 92 規則 當 set ansi nulls 為 on 時 即使 column name 中包含空值,使用 where column name null 的 select 語句仍返回零行。即使 column name 中包含非空值,使用 ...
Web Services呼叫儲存過程簡單例項
web services 主要利用 http 和 soap 協議使商業資料在 web 上傳輸,soap通過 http 呼叫商業物件執行遠端功能呼叫,web 使用者能夠使用 soap 和 http通過 web 呼叫的方法來呼叫遠端物件.web services呼叫儲存過程簡單例項 僅供學習,簡單易懂!...
資料庫儲存過程編寫和呼叫
儲存過程優點 執行速度更快,允許模組化程式設計,提高系統安全性,防止sql注入,減少網路流通量。系統儲存過程一般以 或 組成 create proc 儲存過程名 定義變數 引數,可以不用寫declare as begin end通常資料庫的儲存過程裡一邊都要加事務。事務 原子性,一致性,隔離性 be...