2

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

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

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

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

4

2 回答 2

2

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

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

于 2009-10-02T14:16:24.533 回答
1

此外,DataTable 中的行可能只是简单地相互冲突,因此数据库操作失败,即使数据库中没有提交的内容与 DataTable 冲突。

于 2009-10-02T14:01:52.850 回答