首先,簡要介紹一下我們需要什麼?
我們想在sql中用 try...catch,如果成功,就返回我們查詢的值,如果失敗就返回-1
所以有了以下sql語句(寫在後台的)
string myinsert = @"begin try
insert into dbo.categories values(@categoryname);
set @result = (select @@identity id); //設定成功返回值,這兒是我們查詢自增id
end try
begin catch
set @result = -1;//設定失敗返回值-1
end catch
";
sql語句已經寫好,現在就是需要獲取到這個@result,後台**可以參考一下
//定義乙個資料庫執行指令
sqlcommand insertcommand = new
sqlcommand(myinsert, myconnection);
//新增集合
insertcommand.parameters.add(new sqlparameter() );
//獲取到result返回值,主要是這個output
insertcommand.parameters.add("
@result
", sqldbtype.int).direction =parameterdirection.output;
insertcommand.executenonquery();
//這個dataconvert.toint32是自定義方法,是把查詢到的object物件轉換為int
int result = dataconvert.toint32(insertcommand.parameters["
@result
"].value);
if (result > 0
)
ORCLE MERGE 語句 返回值
今天遇到乙個比較詭異的問題,就是使用ojdbc14.jar驅動訪問資料庫時,使用statement.execute執行merge語句後,在呼叫getupdatecount 方法檢視更新的條目數,永遠返回的是0值,但是當我換11g最新的驅動後,不論是訪問資料庫10g還是11g,都能夠正確的返回merg...
shell 函式返回值接收問題
shell中函式的呼叫方式有兩種,如下圖 第一種方式,有點像c語言呼叫函式的風格,直接把函式的執行結果複製給變數!不過,這個賦值過程和c語言的函式賦值是不一樣的!c語言中,函式呼叫,是將函式的返回值返回給被調函式,如 fun main shell中函式呼叫的第一種方式,是將標準輸出傳遞給主程式的變數...
shell 函式返回值接收問題
shell中函式的呼叫方式有兩種,如下圖 第一種方式,有點像c語言呼叫函式的風格,直接把函式的執行結果複製給變數!不過,這個賦值過程和c語言的函式賦值是不一樣的!c語言中,函式呼叫,是將函式的返回值返回給被調函式,如 cpp view plain copy fun cpp view plain co...