【发布时间】:2018-01-29 10:55:37
【问题描述】:
我有以下字典:
Dictionary messages = new Dictionary<int, dictionary<string, List<string>>>();
我需要以某种方式将此字典的内容放入数据网格视图中。 DGV 应该有 3 列: ID、消息和标签。 ID 是消息的 ID 号(整数)。 消息就是消息(字符串)。 标签列表是链接到此消息的任何标签,可能有 1 到 6 个不同的标签。
字典由 SQL 查询的结果组成。 我想这样做,以删除重复的消息。 SQL 表是根据这个问题中接受的答案制作的: Building a relation between tables
或者我的想法可能完全错误?我可以使用 SQL 查询来实现我想要的吗?
我希望实现的是: 从查询中获取结果显示为:
| ID | Message1 | Tag1, tag2, tag3, tag4 |
| ID | Message2 | Tag1, tag2, tag3, tag4 |
| ID | Message3 | Tag1, tag2, tag3, tag4 |
而不是现在呈现的:
| ID | Message1 | Tag1 |
| ID | Message1 | Tag2 |
| ID | Message1 | Tag3 |
| ID | Message2 | Tag1 |
| ID | Message2 | Tag2 |
| ID | Message2 | Tag3 |
我现在使用的查询是:
SELECT t.message_ID, m.message, t.tagName FROM tbl_messages m JOIN tbl_messages_x_tbl_tags t ON m.message_ID = t.message_ID WHERE t.tagName='tag1' OR t.tagName='tag2'
【问题讨论】:
-
你是在使用 dapper 这样的 ORM 来查询数据库吗? github.com/StackExchange/Dapper 还有为什么是字典而不是对象列表?
-
如果您想以简单的行显示数据,而不是父/子关系,那么可以,只需选择简单行中的数据并相应地设置 DataSource。
-
@Rickard 请查看此答案:stackoverflow.com/questions/48310505/…
-
@AlexanderI。我会感谢你! :)
-
我已经找了一段时间了,Alexander,但不幸的是我不太明白。我不了解 SQL 查询,尝试使用 LINQ 方法似乎无法获得所需的输出。要么我的查询错误(与描述的相同),要么代码不起作用。我认为代码太多,无法添加到评论中。不知道如何以一种好的方式显示我正在使用的代码..