我正在使用c#2005和Sql Server 2000编写应用程序。
我有一个表,有一个独特的约束,在我关注的情况下,我有两个用户使用一个表单(当按下Save时)更新表。
如果表是,例如,NAMES(ID int,NAME varchar(20))并且唯一约束在NAME上,如果要保存的第一个用户添加名称'David'和'John',则表示没问题。如果第二个用户尝试使用包含名称为“John”和“Susan”的行的DataTable进行更新,则会抛出SqlException。但是,异常中没有任何内容告诉我DataTable中的哪一行违反了约束。
除了从数据库中获取唯一约束的组成细节,然后使用此信息检查我的DataTable中的每一行以查看该行是否违反约束,是否有办法确定哪一行有错?< / p>
答案 0 :(得分:2)
您应该使用DataTable.GetErrors来获取有错误的DataRows数组。
对于数组中的每个DataRow,您应该检查DataRow.RowError以及哪些列与DataRow.GetColumnsInError有误。
答案 1 :(得分:1)
此外,DataTable中的行可能只是相互冲突,因此数据库操作失败,即使数据库中没有提交任何内容与DataTable冲突。