导航

sql 中的 try catch 返回錯誤信息

Posted on 2010-02-12 16:18  杨彬Allen  阅读(341)  评论(0)    收藏  举报

以前寫多條sql一起執行,通常是這樣的,返回的值也只是1,-1這些,我們也抓不到具體的解釋。如果用Try Catch來捕捉異常,得到的信息往往是一些很長的一段專業術語,user理解起來比較晦澀。

代码
StringBuilder sb = new StringBuilder();
sb.Append(
" begin\n");
sb.Append(
" insert into tb……;\n");
sb.Append(
" insert into tb……;\n");
sb.Append(
" end");
int i = SQLHelper.ExecuteNonQueryWithTransaction(sb.ToString());

現在利用sql中的 try catch 和@@error來捕捉錯誤的代號,然後在C#中程序員可以對代號簡明易懂的解釋原因。

代码
begin tran Insert_Status
begin try
insert into que_vendor (qid,vendor,vstatus,createby,createdate) values('20100204','GLPL1',1,'Admin',getdate());
insert into que_vendor (qid,vendor,vstatus,createby,createdate) values('20100204','GACS1',1,'Admin',getdate());
end try
begin catch
select @@error
if @@trancount>0
rollback tran Insert_Status
end catch
if @@trancount>0
begin
commit tran Insert_Status
select ''
end

 

 

這邊有篇簡紹SQL異常處理的文章http://blog.csdn.net/wobuwei/archive/2009/08/18/4459019.aspx