C# 检测违反了多个唯一密钥中的哪一个?

C# 检测违反了多个唯一密钥中的哪一个?,c#,.net,sql-server,constraints,C#,.net,Sql Server,Constraints,我需要在我的C#Winforms应用程序中捕获唯一的常量。在我以前的版本中,我只有一个UniqueKey,它是UK\u StudentNo,因此当用户试图为不同的学生提供相同的学生号时,我使用下面的代码SQLException约束号2627捕获了违规行为 catch (SqlException ex) { if (ex.Number==2627) { MessageBo

我需要在我的C#Winforms应用程序中捕获
唯一的
常量。在我以前的版本中,我只有一个
UniqueKey
,它是
UK\u 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
,我无法将这两个
UniqueKey
与它们的
ConstraintNumber
区分开来,因此我无法理解哪个UniqueKey违规会引发异常。当我想显示消息,如
“学生编号已给出”
“国家已给出”

检查
ex.message
中的异常消息时,如何区分这两个唯一键,它应该指出违反了哪个约束


您还可以在
ex.Errors
集合中找到其他信息。

检查
ex.Message
,它应该说明违反了哪个约束。@rbaryyoung
ex.Message.contains(“UK_StudentNo”)
确实对我有效,我将添加它作为答案。