【发布时间】:2017-07-05 11:17:05
【问题描述】:
我想根据一些不同的值聚合数据表行。我必须使用 Select 和 Compute 方法或其他非 linq 方法。 我的问题是:我如何聚合(sum、count、min 和 ...)和分组字段,并像 sql server 表一样获得结果。考虑一下我有一个包含四列 a、b、c、d 的表。当我想基于 'b' 聚合 'a' 时,我可以这样写:
Select sum(a) as 'a', b
from myTable
group by b
而 sql 服务器创建了一个包含两列“a”和“b”的表,那么我如何在 C# 中使用 DataTables 来执行此操作?
我在 MSDN 和其他相关来源中看到了 DataTable.Compute() 的示例,用于在数据表中聚合和分组数据,但它只返回一个对象值,并且对于分组数据表中的行没有用。在我的问题中,用户喜欢在运行时使用sum、min、max 或...,我试图找到创建一些动态查询的解决方案。
【问题讨论】:
-
您为什么不想使用 LINQ?
-
Sum、Min、Max、Count、Avg 的使用是动态的,用户决定如何聚合字段。在 LINQ 中你没有动态查询(以一种简单的方式!)
-
weblogs.asp.net/scottgu/… 或 nlinq.codeplex.com 是否适合您的需求?
-
@mjwills,非常感谢 weblogs.asp.net/scottgu/...!这很棒。我以前见过,但不是那么仔细!其实你救了我的一天!
标签: c# sql-server linq datatable