我有一个 SQL Server 视图,它对两个表进行简单连接并返回一些列。在 Management Studio 中运行此视图不会导致任何问题,返回预期的数据(两行)。
当我在 Visual Studio 中将此视图用作我的 TableAdapter 的数据源时,我收到一个 ConstraintException 说“无法启用约束。一行或多行包含违反非空、唯一或外键约束的值。”。
我在调用 tableAdapter.Fill(dataSet.vwMyView) 之前使用了 EnforceConstraints = false,因此我可以获得有关此问题原因的更多信息。最后我收到一条消息,说“MyColumn”列有一个约束,它必须是唯一的,但是值 4(一个 id)已经存在(是的,有两行有这个 id)。
我确实明白,在我在视图中加入的两个表之一中,这个特殊项是唯一的(和主键),但是,我不明白为什么这会导致我的 DataGridView 出现错误,因为
- 我只想显示数据
- 在 Management Studio 的同一视图上执行相同的选择时,我没有收到任何错误
这是为什么?我需要显示 id 值,而且我也不明白为什么我实际上会收到该错误。
提前致谢 &
此致
戈尔塞格