我需要在C#Winforms应用程序中捕获Unique
Constarints。在我之前的版本中,我只有一个UniqueKey
UK_StudentNo
,因此当用户尝试提供相同的SQLException
2627
时,我使用下面的代码捕获了违规行为不同学生的学号。
catch (SqlException ex)
{
if (ex.Number==2627)
{
MessageBox.Show("Student number already given");
}
else
{
MessageBox.Show("Database Error !");
}
throw;
}
但是现在,我有另一个UniqueKey
,UK_Student_NationalID
我不能将这两个UniqueKeys
与ConstraintNumber
区别开来,所以我无法理解哪个UniqueKey违规会引发异常。当我想要显示"Student number already given"
或"NationalID already given"
答案 0 :(得分:2)
检查ex.Message
中的异常消息,它应指出违反了哪个约束。
您也可以在ex.Errors
集合中找到更多信息。