【发布时间】:2017-04-24 18:51:21
【问题描述】:
我需要在我的 C# Winforms 应用程序中捕获 UniqueConstarints。在我以前的版本中,我只有一个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,我无法将这两个UniqueKeys 与它们的ConstraintNumber 区别开来,所以我无法理解哪个UniqueKey 违规引发了异常。当我想显示 "Student number already given" 或 "NationalID already given" 之类的消息时,如何区分这 2 个 UniqueKeys
【问题讨论】:
-
检查
ex.Message,它应该说明违反了哪个约束。 -
@RBarryYoung
ex.Message.contains("UK_StudentNo")真的为我工作,谢谢 -
我会添加它作为答案。
标签: c# .net sql-server constraints