0

希望有人可以帮助我解决可能是一个愚蠢的问题。

我正在尝试使用数据中继器来显示通过 LINQ 从数据表生成的数据

我已经使用过滤的现有数据源成功地做到了这一点:

Me.Tbl_52TableAdapter.Fill(Me.CBRDataSet.tbl_52)

Dim query =
  From dlist In CBRDataSet.tbl_52.AsEnumerable
  Where (dlist.Field(Of String)("TL") = "CTS 06")
  Select dlist

query.CopyToDataTable().AsDataView()
DataRepeater1.DataSource = query

问题是我需要将数据集中的一个字段聚合成一个计数。

如果我将查询替换为:

Dim query =
  From CountAgent In CBRDataSet.tbl_52.AsEnumerable
  Group CountAgent By PBX = CountAgent.Field(Of String)("TL") Into Count()
  Select Count

然后它指出:“CopyToDataTable”不是“System.Collections.Generic.IEnumerable(Of Integer)”的成员

我试图通过将声明更改为: Dim query As IEnumerable(Of DataRow) =

哪个编译,但我不知道它是否有效,我无法检查,因为我找不到将标签绑定到数据视图的生成计数 col 的方法。

如果有人能告诉我我做错了什么,我将不胜感激。

4

1 回答 1

0

回到我自己的问题,以防它帮助其他人:MSDN 有答案 - 你需要重载 copyToDataTable,如

“如何:在通用类型 T 不是 DataRow 的情况下实现 CopyToDataTable”:

http://msdn.microsoft.com/en-us/library/bb669096.aspx

于 2014-01-14T14:52:57.227 回答