2011-03-24 70 views
2

我正在使用XML文件,并将XML中的数据设置为数据集,并将用户选择的表存储为数据表。使用过滤条件,分组,聚合函数,表达式生成查询等是否可以查询数据表? 我确实来过table.Select(筛选条件,排序)method.but请让我知道如何分组,聚合函数和表达式(例如:Column1 + Column2作为SumColumn)可以得到。如何查询数据表

回答

1

不幸的是,table.Select(filterCriteria, sort)是你的唯一选择没有LINQ(我不是LINQ的大师,所以不要问我它能做什么)。

任何时候我需要特定的东西,我创建/添加该列到DataTable。

 DataTable table = new DataTable(); 
     // code that populates the table 
     DataColumn c = table.Columns.Add("Column1 + Column2", typeof(int)); 
     int Sum = 0; 
     for (int i = 0; i < table.Rows.Count; i++) { 
      r = table.Rows[i]; 
      int col1 = (int)r["Column1"]; 
      int col2 = (int)r["Column2"]; 
      int both = col1 + col2; 
      Sum += both; 
      r[c] = string.Format("{0}", both); 
     } 
     DataRow summaryRow = table.NewRow(); 
     summaryRow[c] = (int)((float)Sum/table.Rows.Count + 0.5); // add 0.5 to round 
     table.Rows.Add(summaryRow); 

HTH。

+0

@ ip2Code - thanx..Plz建议使用C#代码进行分组和汇总函数(eg-sum(col1),avg(col2))的逻辑。 – pKumar 2011-03-24 17:25:08

+0

按照您需要的方式构建表格后,必须遍历条目才能汇总值并获取平均值。 – jp2code 2011-03-24 17:39:48

+0

我编辑了代码,给出了一个更完整的例子,我认为你在做什么。 – jp2code 2011-03-24 17:48:31

2

您可以使用LINQ查询数据 - 假设您使用支持它的.Net Framework版本。退房LINQ To Dataset

+0

它应该是一个通用代码,用于根据用户对数据源和数据库的选择对所有表执行过滤条件,分组和聚合函数。可以创建一个通用的LINQ查询。 – pKumar 2011-03-24 16:59:06

+0

- 我的意思是通用的是,表/分组/筛选条件的细节不能被硬编码。我有一个字符串,包含选定的列,过滤条件,查询的分组细节。但是在LINQ中,不接受字符串串联(例如:从

其中 ....未按要求执行) – pKumar 2011-03-24 17:10:08