我遇到了以下问题:
无法启用约束。一个或多个行包含违反非空、唯一或外键约束的值。
这是在我的表适配器中执行以下查询时出现的错误。
select
f.id, f.name, p.productid, p.masterproductID, f.productid, f.dateCreated, f.retired, p.code as HTML_DisplayName, p.ThumbnailID, p.code
from FormSaveData f
inner join Products p on (f.productid = p.ProductID or f.productId = p.MasterProductID)
where f.userId = 130559
and (p.b_IsArchived = 0 and p.b_IsRetired=0 and p.b_IsStaged = 0)
当我单独运行查询时,它能正常工作,其他用户ID也能正常工作,所以这是一个非常特殊的情况。我已经缩小了范围,发现我正在使用内联连接。
f.productid = p.ProductID **或者** f.productId = p.MasterProductID
我相信在某些罕见情况下,这会导致某种冲突,而表适配器不喜欢这种情况。当涉及到表适配器和SQL时,我几乎是个新手,所以任何有关如何更好地编写代码或为什么会出现这种情况的建议都将不胜感激。FormSaveData表中没有设置任何约束、键或特殊规则。