从数据适配器填充数据表时出现错误

时间:2020-03-06 14:57:23  来源:igfitidea点击:

我收到此错误,但只是偶尔遇到。 99.9%的时间可以正常运行:

无法启用约束。一或者多个行包含违反非null,唯一或者外键约束的值。

有谁知道原因可能是什么?我仅使用该数据表进行查看而不更新,因此是否可以通过某种方式轻松关闭所有约束?

解决方案

当数据集上的模式强制执行数据库中未执行的操作时,通常会发生这种情况。

Visual Studio将自动读取架构并尝试在数据集中设置一些主键,但是如果使用的视图可能返回多行,它将失败。通过在设计器中删除约束,很容易从DataSet本身中删除这些约束。

检查以确保数据集在可能有两行具有相同键的情况下不强制执行主键,例如在将两个表连接在一起并因此复制父表中的行的视图中。默认情况下,VS会尝试将父表的主键创建为对数据集的唯一约束,但是视图本身不强制执行此类约束。

在填充DataTable之前将DataSet.EnforceConstraints设置为false