C# 检测违反了多个唯一密钥中的哪一个?
我需要在我的C#Winforms应用程序中捕获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
唯一的常量。在我以前的版本中,我只有一个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
,它应该说明违反了哪个约束。@rbaryyoungex.Message.contains(“UK_StudentNo”)
确实对我有效,我将添加它作为答案。