我正在處理一個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. 違反PRIMARY KEY約束
- 4. Postgres:違反外鍵約束
- 5. 違反唯一鍵約束
- 6. DB約束違反休眠
- 7. 違反約束失敗
- 8. 違反唯一約束?
- 9. 違反PRIMARY KEY約束'PK _ *%$ ^&'
- 10. @NamedNativeQuery違反約束 - 交易
- 11. 違反約束上插入
- 12. FactoryGirl:非空約束違反
- 13. 違反PRIMARY KEY約束「PK_
- 14. 瞭解違反約束SQL
- 15. sqlalchemy,違反外鍵約束
- 16. 違反PRIMARY KEY約束插入空表
- 17. 多重約束違反SQL Server 2008 - CodeFirst
- 18. djangorestframework USER_ID違反了非空約束
- 19. Hibernate違反UNIQUE KEY約束條件
- 20. Rspec + Postgresql9.1違反非空約束?
- 21. ORA-00001:違反的唯一約束(DEV.X_PK)
- 22. postgres中的timetravel - 違反PRIMARY KEY約束
- 23. 合併導致違反唯一約束
- 24. EntityFramework 4.0:InvalidOperationExeception:違反多重約束
- 25. Django的關鍵違反唯一約束
- 26. AspNet身份MVC6違反類型約束
- 27. 00001. 00000 - 「唯一約束(%s。%s)違反」
- 28. 裝載機違反約束在JBoss中
- 29. 違反PRIMARY KEY約束錯誤SQL
- 30. 捕捉違反約束在JPA 2.0
是的。我只想知道用戶是否違反了唯一的約束,所以應用程序可以通知'UniqueConstraintException:Exception'(繞過SqlException)哪個插入的數據錯誤 – DJPB 2010-03-25 16:07:14