检测违反了多个唯一键中的哪一个?

时间:2017-04-24 18:51:21

标签: c# .net sql-server constraints

我需要在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;
            }

但是现在,我有另一个UniqueKeyUK_Student_NationalID我不能将这两个UniqueKeysConstraintNumber区别开来,所以我无法理解哪个UniqueKey违规会引发异常。当我想要显示"Student number already given""NationalID already given"

等消息时,如何在这两个UniqueKeys之间做出改变?

1 个答案:

答案 0 :(得分:2)

检查ex.Message中的异常消息,它应指出违反了哪个约束。

您也可以在ex.Errors集合中找到更多信息。