sql - 列 'ID' 被限制为唯一。值(value)已经存在

标签 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 是添加了 groupId 字段(Guid)的 ASP.NET 用户表。

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

成员(member)数据有
MemberData.UserId 对每个 formRow(用户的表单数据集合)重复。
MemberData.FormRow 对于每个不同的 UserId 都有许多重复,即 FormId's 表单中该 formRow 的每个用户数据。
表单中的每个 FormRow 都会重复 MemberData.FormId
MemberData.Value 是任意用户输入的值。

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

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

最佳答案

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

关于sql - 列 'ID' 被限制为唯一。值(value)已经存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29091096/

相关文章:

php - 无法加入 codeigniter

mysql 与 information_schema.tables 相关的问题

asp.net - Tridion 页面中的这些 ASP.Net 用户控件 (.ascx) 有什么作用?

sql - PostgreSQL 交叉表查询

SQL Server 2008 - 对于 XML 路径非常慢

c# - 为每个客户定制业务规则...(asp.net mvc)

c# - 获取 HttpRequest 的底层套接字

sql - 如何使用 SQL Server 覆盖 GROUP BY 中的空列值?

SQL - 从行中减去消耗值

sql - 通过 Min/Max/Avg 操作对表中的值进行分组