我正在使用 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/