2014-04-07 65 views
0

我一直在使用捕捉C#中的SQL異常代碼:SQL異常代碼

catch (SqlException x) 
     { 
      Console.WriteLine(x.Message.ToString()); 
      Program.MyLogFile("SQL Upload Failed SQL Exception  ", x.ErrorCode.ToString() +" ", today); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message.ToString()); 
      Program.MyLogFile("SQL Upload Failed All Exeption ", ex.Message.ToString() + " ", today); 
      email(); 
     } 

它給了我在文本文件中的以下數字。我怎麼知道它意味着什麼?

錯誤代碼:-2146232060 我使用SQL 2012

+0

您應該考慮除了錯誤代碼記錄異常消息。 –

+0

我已經這樣做了,但只有SQL異常出現在日誌文件中。 – user3314399

+3

不幸的是,你記錄錯誤的東西。 'Number'屬性會更有用,因爲它直接映射到可輕鬆查找的SQL Server錯誤號。 –

回答

2

考慮使用SqlException.Number屬性如下所示:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlexception.number.aspx

而且這將給更好的理解錯誤消息如果你在SQL Server中查詢這個如果你想使用一個特定的錯誤代碼並且執行某些操作:

SELECT * FROM sysmessages 

如果你看一下錯誤:從上面的查詢,然後104: 舉例如果那裏有與聯盟和ORDER BY的錯誤在SQL:

catch (SqlException e) 
{ 
    switch (e.Number) 
    { 
     case 104: 
     // Do something. 
     break; 
     default: 
    throw; 
    } 
} 
+0

你能給出一些原因嗎?這是一個僅限鏈接的答案。 – JeffO

+0

@JeffO:更新了答案。 –

+0

夠好。謝謝 – user3314399