列'ID'被限制为唯一的。价值已经存在

时间:2015-03-17 04:02:47

标签: sql asp.net sql-server select

我得到一个我不明白的约束错误。

System.Data.ConstraintException: Column 'ID' is constrained to be unique. 
Value '01d3eb89-f4e1-4782-9519-da8f08e0638f' is already present.

会员数据中重复该值 - 我不知道它是如何被限制为唯一的。

查询是

SELECT MemberData.UserId, MemberData.FormRow, MemberData.Value
FROM AuthUsers, MemberData 
WHERE (AuthUsers.GroupId = @groupId AND AuthUsers.Id = MemberData.UserId 
    AND MemberData.FormId = @formId) 
Group By MemberData.UserId, MemberData.FormRow, MemberData.Value

AuthUsers是ASP.NET用户表,其中添加了groupId字段,这是一个Guid。

MemberData是表单数据的数据。它有 FormRow (Guid) - 指向FormRow中的表单定义行 价值(字符串)
Id (int) - 唯一的自动增量键
UserId (string) - 来自AuthUser表的userId
FormId (Guid) - 指向表单中的表单定义

MemberData有
每个MemberData.UserId(用户的表单数据集合)重复formRow MemberData.FormRow针对UserId形式的formRow的每个用户的每个用户的数据重复了多个FormId's。 表格中的每个MemberData.FormId都会重复FormRow MemberData.Value是用户输入的任意值。

错误是一个用户ID,在其所在的五个字段的数据中重复了5次。

我正在尝试填充成员网格摘要,获取MemberData中按UserId分组的所有数据行,这是摘要行。使用GroupId是因为摘要适用于组中的所有用户。

1 个答案:

答案 0 :(得分:1)

这有点尴尬,消息是从网格加载而不是数据库。非常令人困惑,我正在使用非常相似的消息修复一些SQL查询问题,并且最终的错误消息看起来就像数据库一致的其他方式。问题在代码逻辑中得到修复。