c# - 哪个数据集行违反了数据库唯一约束?

标签 c# .net sql sql-server unique-constraint

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

我有一个带有唯一约束的表,并且在我关心的情况下,我有两个用户使用一个表单,该表单将(当按下“保存”时)更新表。

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

除了从数据库获取唯一约束组成的详细信息,然后使用此信息检查数据表中的每一行以查看该行是否违反约束之外,还有其他方法可以确定哪一行出现错误吗?

最佳答案

您应该使用DataTable.GetErrors获取有错误的 DataRows 数组。

对于数组中的每个 DataRow,您应该检查 DataRow.RowError以及哪些列与 DataRow.GetColumnsInError 有错误.

关于c# - 哪个数据集行违反了数据库唯一约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1509635/

相关文章:

.net - 一个 DLL,多个项目?

c# - NLog 有时不写入文件

mysql - 如何在 MySQL 触发器中构造此 IF 条件

mysql - 我的 SQL 语句被执行了两次(我是初学者)

c# - WCF 测试客户端无法添加服务,无法获取元数据

c# - .NET 加密字节数组

c# - asp.net webforms vs mvc 哪个最适合业务应用程序

c# - 继承一个类,但它通常是用静态方法创建的?

c# - 如何获取电话号码

c# - 提供者未返回ProviderManifestToken字符串 Entity Framework