我正在處理一個asp.net應用程序。 有沒有辦法,當捕獲一個SqlException, 知道哪些約束被違反?違反SqlException約束
4
A
回答
2
你必須添加異常處理程序ConstraintException如果我明白你的問題正確
try
{
}
catch(ConstraintException exc)
{
//exc.Message
}
0
你讓異常泡沫嗎?如果你不抓住它,並在web.config中關閉自定義錯誤,我相信它會顯示在你的瀏覽器中。如果你在捕捉它,我會在捕捉部分放一個斷點並檢查那裏的異常。
7
-1
最好的事情是在你的C#代碼中捕獲這個catch異常。
catch(SqlException ex)
{
if (ex.Message.Contains("UniqueConstraint"))
throw new UniqueConstraintException();
throw;
}
您可以創建自己的異常並從數據層中拋出異常,否則可以直接捕獲上述的異常。
using System;
public class UniqueConstraintException : Exception
{
}
+0
-1。也因爲.NET框架中已經有'ConstraintException'。 – Neolisk 2014-11-03 13:15:39
4
catch (SqlException ex)
{
if (ex.Errors.Count > 0) // Assume the interesting stuff is in the first error
{
switch (ex.Errors[0].Number)
{
case 547: // Foreign Key violation
throw new InvalidOperationException("Your FK user-friendly description", ex);
break;
// other cases
}
}
}
+0
在這種特殊情況下,爲了簡單起見,您可以使用ex.Number。 – 2015-05-19 11:18:59
相關問題
- 1. 違反約束?
- 2. doctrine2違反約束
- 3. 瞭解違反約束SQL
- 4. FactoryGirl:非空約束違反
- 5. 違反唯一鍵約束
- 6. 違反PRIMARY KEY約束「PK_
- 7. ORA-00001違反的唯一約束(string.string)
- 8. 檢查約束違反時間
- 9. 捕捉違反約束在JPA 2.0
- 10. 孤兒去除約束違反
- 11. 合併導致違反唯一約束
- 12. EntityFramework 4.0:InvalidOperationExeception:違反多重約束
- 13. 完整性約束(LEETO14.SYS_C00414504)違反
- 14. 多重約束違反SQL Server 2008 - CodeFirst
- 15. 違反約束並行運行
- 16. 違反主鍵約束讀取
- 17. MSSQL-複製和違反PK約束
- 18. 唯一約束違反了空表
- 19. INSERT INTO ..選擇..違反唯一約束
- 20. 違反PRIMARY KEY約束錯誤SQL
- 21. 違反日誌列約束條件
- 22. 違反處理唯一約束(SYSTEM.SYS_C006997)
- 23. 如何找到違反約束的列?
- 24. ORA 000001唯一約束違反
- 25. Asp.net中處理約束SqlException
- 26. SQLException:在oracle中違反協議
- 27. 層次約束違規 - salesforce.com
- 28. NHibernate約束違規問題
- 29. 完整性約束違規
- 30. Haskell中:違約約束鍵入
是的。我只想知道用戶是否違反了唯一的約束,所以應用程序可以通知'UniqueConstraintException:Exception'(繞過SqlException)哪個插入的數據錯誤 – DJPB 2010-03-25 16:07:14