为什么DataGridView中不显示此数据

时间:2012-12-19 21:14:01

标签: c# winforms linq datagridview

我正在使用CoolStorage从Access数据库中检索数据,并且可以通过将其DataSource设置为DataGridView来成功填充团队Team.List()

但是,我想在结果集上使用LINQ查询来返回每个团队的用户数。由于此屏幕截图显示结果正常返回,但DataGridView不显示任何数据。如果我将DataSource切换为Team.List(),则会显示团队没有任何问题(尽管显然不是用户数)。

为了将LINQ结果用作DataSource,我还需要做些什么吗?我可以通过向我的Team类添加属性来解决这个问题,但是我不明白为什么我不能使用LINQ结果。

Screenshot

2 个答案:

答案 0 :(得分:3)

在使用之前,您需要实现数据源。

尝试更改

this.dgvTeams.DataSource = d; 

this.dgvTeams.DataSource = d.ToList();

答案 1 :(得分:1)

LINQ使用延迟执行。也就是说,您已经构建了LINQ查询,但实际上不会对其进行求值以产生结果,除非您在查询末尾添加方法或聚合以强制立即评估,或者您可以枚举结果。

尝试使用...

this.dgvTeams.DataSource = d.ToList();