第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何捕獲特定的SqlException錯誤?

如何捕獲特定的SqlException錯誤?

C#
守著星空守著你 2019-12-26 10:41:21
問:是否有更好的方法來處理SqlExceptions?下面的示例依賴于解釋消息中的文本。Eg1:如果表不存在,我有一個現(xiàn)有的try catch來處理。忽略了我可以首先檢查表是否存在的事實。try{    //code}catch(SqlException sqlEx){        if (sqlEx.Message.StartsWith("Invalid object name"))        {            //code        }        else            throw;}EG2:沒有try catch顯示重復(fù)的密鑰異常if (sqlEx.Message.StartsWith("Cannot insert duplicate key row in object"))解決方案:我的SqlExceptionHelper的開始//-- to see list of error messages: select * from sys.messages where language_id = 1033 order by message_idpublic static class SqlExceptionHelper{    //-- rule: Add error messages in numeric order and prefix the number above the method    //-- 208: Invalid object name '%.*ls'.    public static bool IsInvalidObjectName(SqlException sex)    { return (sex.Number == 208); }    //-- 2601: Cannot insert duplicate key row in object '%.*ls' with unique index '%.*ls'. The duplicate key value is %ls.    public static bool IsDuplicateKey(SqlException sex)    { return (sex.Number == 2601); }}
查看完整描述

3 回答

?
UYOU

TA貢獻(xiàn)1878條經(jīng)驗 獲得超4個贊

有點像 請參閱數(shù)據(jù)庫引擎錯誤的原因和解決方案


class SqllErrorNumbers

   public const int BadObject = 208;

   public const int DupKey = 2627;

}


try

{

   ...

}

catch(SqlException sex)

{

   foreach(SqlErrorCode err in sex.Errors)

   {

      switch (err.Number)

      {

      case SqlErrorNumber.BadObject:...

      case SqllErrorNumbers.DupKey: ...

      }

   }

}

但問題是,我們會TRY/CATCH 在 T-SQL(存儲過程)內(nèi)部建立一個良好的DAL層,并使用類似異常處理和嵌套事務(wù)的模式。遺憾的是,T-SQL TRY/CATCH塊無法引發(fā)原始錯誤代碼,而必須引發(fā)新錯誤,且代碼大于50000。這使客戶端處理問題。在下一版本的SQL Server中,有一個新的THROW構(gòu)造,該構(gòu)造允許重新引發(fā)T-SQL catch塊中的原始異常。


查看完整回答
反對 回復(fù) 2019-12-26
?
慕容3067478

TA貢獻(xiàn)1773條經(jīng)驗 獲得超3個贊

最好使用錯誤代碼,而不必解析。


try

{

}

catch (SqlException exception)

{

    if (exception.Number == 208)

    {


    }

    else

        throw;

}

如何確定應(yīng)使用208:


select message_id

from sys.messages

where text like 'Invalid object name%'


查看完整回答
反對 回復(fù) 2019-12-26
  • 3 回答
  • 0 關(guān)注
  • 1025 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號