我需要在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
,我无法将这2个UniqueKeys
与它们的ConstraintNumber
区别开,因此我无法理解哪个UniqueKey违例引发了异常。当我要显示诸如"Student number already given"
或"NationalID already given"
之类的消息时,如何在这两个UniqueKey之间进行区别 最佳答案
检查ex.Message
中的异常消息,它应指出违反了哪个约束。
您也许还可以在ex.Errors
集合中找到其他信息。
关于c# - 检测到多个唯一键中的哪一个被违反?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43595654/