我想以不同的方式处理不同的问题,同时进行数据库操作。
例如由于错误的数据库凭据或网络问题,操作可能会失败。也可能因为查询不正确而失败(如果在int类型列中传递字符串值)
在我的 C# 代码中,我们只有 SqlException
,它包含 SqlErrors
的集合。然而,有许多严重级别。
我如何轻松确定 SqlException 的原因?如何确定异常是由于连接问题或身份验证失败还是由于查询问题。
我正在使用 SQL Server 2005。
最佳答案
尝试这样的事情,这将帮助您处理不同的情况。
像这样使用 try catch block :
try
{
...
...
}
catch (SqlException ex)
{
switch (ex.Number)
{
case 4060: // Invalid Database
....
break;
case 18456: // Login Failed
....
break;
case 547: // ForeignKey Violation
....
break;
case 2627:
// Unique Index/ Primary key Violation/ Constriant Violation
....
break;
case 2601: // Unique Index/Constriant Violation
....
break;
default:
....
break;
}
}
关于c# - 如何知道抛出 SqlException 的实际问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4825365/