簡單的儲存過程編寫與呼叫

2021-04-06 19:42:51 字數 1472 閱讀 6946

如果程式有一段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...