首页 新闻 会员 周边

如何实现 Linq to DataSet 动态查询

0
悬赏园豆:40 [已关闭问题] 关闭于 2013-04-22 14:39
 var query = from t in dt.AsEnumerable()
                            group t by new { t1 = t.Field<int>("管径"), t2 = t.Field<string>("材质") }
                                into m
                                select new
                                {
                                    t1 = m.Key.t1,
                                    t2 = m.Key.t2,
                                    t3 = m.Count()
                                };

如上面代码所述,dt为一个已知的DataTable,想要在这个dt中对其中的一些列分组,并且分组完成后只显示分组的列与分组出来的count()数量。

上面的代码运行可以按管径与材质进行分组,并得出统计的数量,但是当我需要分组的列的数量是不定的是由客户来选择的。那么怎样将上述代码改为可以动态改变列的数量呢??

在网上查到有两种方法:用Dynamic.cs 和 使用Expression构建 表达式目录树,但是还是没看懂,希望大虾们指点下,最好有代码可以参考下。 拜谢。

问题补充:

晕,难道就没有高手知道吗??

_Arvin的主页 _Arvin | 初学一级 | 园豆:6
提问于:2012-12-17 15:22
< >
分享
所有回答(2)
0

还是使用sql拼接吧,你这个用linq性能不知道怎么样。

Tom.汤 | 园豆:3028 (老鸟四级) | 2012-12-17 18:07

http://blogs.msdn.com/b/mitsu/archive/2008/02/07/linq-groupbymany-dynamically.aspx

支持(0) 反对(0) Tom.汤 | 园豆:3028 (老鸟四级) | 2012-12-17 18:07

@Tom.汤: 大哥可以说下上面网页中的思路么?我今天找类似那种方法找到好多,但是里面的方法太多没看懂怎么用。

支持(0) 反对(0) _Arvin | 园豆:6 (初学一级) | 2012-12-17 18:16
0

好吧,看来是没人知道。

_Arvin | 园豆:6 (初学一级) | 2012-12-18 17:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册