C 中呼叫儲存過程筆記(原) (轉

2022-02-01 08:24:55 字數 2123 閱讀 5111

編輯

收藏 所屬分類: sql資料庫

資料訪問層現在都興用儲存過程了

本篇記錄了乙個功能比較齊全的儲存過程的寫法,和乙個c#實現的比較通用的呼叫帶返回值儲存過程的方法。

1、儲存過程:

例子中操作的表為 power(p_id,p_name,p_des)

本儲存過程中進行了一般的空值,主鍵重複檢測,對多條操作語句使用了事務

create procedure  myp2 

@pid int ,@pname nvarchar(15),@pdes nvarchar(50)

asdeclare @return int,@count int

--檢測引數是否有空值

if(ltrim(rtrim(@pname))='' or ltrim(rtrim(@pid))='')

begin

select 1--輸入的引數有空值

return 

end--檢測是否有主鍵重複

select @count=count(1) from power where p_id=@pid

if(@count>0)

begin

select 2--有重複

return

end--執行事務

begin  tran

insert into power(p_id,p_name,p_des)values(@pid,@pname,@pdes)

if(@@error<>0)  goto l_rollback

insert into powerlog(p_id,p_des)values(@pid,@pdes)

if(@@error<>0) goto l_rollback

commit tran

select  @return=4 --成功

goto l_ok

l_rollback:

rollback tran

select @return=3 --失敗

l_ok:

select  @return

go2、c#中呼叫帶返回值的儲存過程

這是乙個比較通用的方法,儲存過程的引數可以放在陣列裡面

/*執行儲存過程

* 引數說明:

* storeproname:儲存過程名稱

* parameters:儲存過程的引數,用oledbparameter型別的陣列表示

* result

:執行該儲存過程的返回值,返回「成功」則執行成功,返回其他則失敗

*/public void excutestore(string storeproname,oledbparameter parameters,out string result)

string temp = "";

trycatch (exception ee)

finally

result = "成功"; //預設成功

//返回0表示資料操作成功

//返回1表示提交的資料有空值

//返回2表示編號有重複

//返回3表示資料操作錯誤

switch (temp)

}上面方法的使用範例:

oledbparameter param=new oledbparameter[2];

param[0] = new oledbparameter("@name", oledbtype.varchar, 6);

param[1] = new oledbparameter("@pwd", oledbtype.varchar, 40);

param[0].value = textbox1.text;

param[1].value = textbox2.text;

string outstring;

excutestore("myprocedure", param, out outstring);

if (outstring == "成功")

binding();

else

label1.text = outstring;

我用的是oledb驅動,連的一種古老的資料庫sybase,可能大家對sqlparameter更熟悉一點,方法一樣。

C 中呼叫儲存過程筆記(原)

資料訪問層現在都興用儲存過程了 本篇記錄了乙個功能比較齊全的儲存過程的寫法,和乙個c 實現的比較通用的呼叫帶返回值儲存過程的方法。1 儲存過程 例子中操作的表為 power p id,p name,p des 本儲存過程中進行了一般的空值,主鍵重複檢測,對多條操作語句使用了事務 create pro...

C 中SQL呼叫儲存過程

兩種不同的儲存過程呼叫方法 為了突出新方法的優點,首先介紹一下在.net中呼叫儲存過程的 官方 方法。另外,本文的所有示例程式均工作於sqlserver資料庫上,其它情況類似,以後不再一一說明。本文所有例子均採用c 語言。要在應用程式中訪問資料庫,一般性的步驟是 首先宣告乙個資料庫連線sqlconn...

C 呼叫儲存過程

string sconnectionstring server local sqlexpress database forum trusted connection true 04 using sqlconnection conn new sqlconnection sconnectionstrin...