C# 哪个数据集行违反了DB unique约束?

C# 哪个数据集行违反了DB unique约束?,c#,.net,sql,sql-server,unique-constraint,C#,.net,Sql,Sql Server,Unique Constraint,我正在使用c#2005和Sql Server 2000编写一个应用程序 我有一个具有唯一约束的表,在我所关心的情况下,我有两个用户使用一个表单,该表单将(在按下Save时)更新表 例如,如果表是NAMES(ID int,NAME varchar(20)),并且惟一约束是NAME,那么如果第一个保存的用户添加了名称“David”和“John”,就可以了。如果第二个用户尝试使用包含名为“John”和“Susan”的行的DataTable进行更新,则会引发SqlException。但是,异常中没有任何

我正在使用c#2005和Sql Server 2000编写一个应用程序

我有一个具有唯一约束的表,在我所关心的情况下,我有两个用户使用一个表单,该表单将(在按下Save时)更新表

例如,如果表是NAMES(ID int,NAME varchar(20)),并且惟一约束是NAME,那么如果第一个保存的用户添加了名称“David”和“John”,就可以了。如果第二个用户尝试使用包含名为“John”和“Susan”的行的DataTable进行更新,则会引发SqlException。但是,异常中没有任何内容告诉我DataTable中的哪一行违反了约束


除了从数据库中获取唯一约束的组成细节,然后使用此信息检查我的DataTable中的每一行,以查看该行是否违反约束之外,是否有方法确定哪一行有故障?

此外,DataTable中的行可能只是相互冲突,因此,即使数据库中提交的内容与DataTable不冲突,数据库操作也会失败。

您应该使用来获取有错误的DataRows数组


对于数组中的每个DataRow,您应该检查哪些列有错误。

DataTable.GetErrors.Length为0,因此不幸的是,这没有帮助。如果我在DataTable.GetErrors中添加了一行,该行(比如)在不可为null的列中有一个null,那么我希望DataTable.GetErrors中会有错误,但是数据表中的行是有效行。当它们撞击数据库时,它们与数据库中已有的行发生冲突。您使用什么将数据从DataTable获取到数据库?DataAdapter?我不确定它是否会影响您的思路,但对于我的初始示例中的两个用户,他们都是从一个空的DataTable开始的,因为(当他们开始编辑时)DB表是空的。感谢@Alfredmayers,这对确定异常的根本原因非常有帮助。