我需要在我的 C# Winforms 应用程序中捕获 Unique
约束。在我以前的版本中,我只有一个 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"
最佳答案
检查 ex.Message
中的异常消息,它应该指示违反了哪个约束。
您还可以在 ex.Errors
集合中找到更多信息。
关于c# - 检测违反了多个唯一键中的哪个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43595654/