我正在使用XML文件,并将XML中的数据设置为数据集,并将用户选择的表存储为数据表。使用过滤条件,分组,聚合函数,表达式生成查询等是否可以查询数据表? 我确实来过table.Select(筛选条件,排序)method.but请让我知道如何分组,聚合函数和表达式(例如:Column1 + Column2作为SumColumn)可以得到。如何查询数据表
Q
如何查询数据表
2
A
回答
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。
2
您可以使用LINQ查询数据 - 假设您使用支持它的.Net Framework版本。退房LINQ To Dataset
+0
它应该是一个通用代码,用于根据用户对数据源和数据库的选择对所有表执行过滤条件,分组和聚合函数。可以创建一个通用的LINQ查询。 – pKumar 2011-03-24 16:59:06
+0
- 我的意思是通用的是,表/分组/筛选条件的细节不能被硬编码。我有一个字符串,包含选定的列,过滤条件,查询的分组细节。但是在LINQ中,不接受字符串串联(例如:从
@ ip2Code - thanx..Plz建议使用C#代码进行分组和汇总函数(eg-sum(col1),avg(col2))的逻辑。 – pKumar 2011-03-24 17:25:08
按照您需要的方式构建表格后,必须遍历条目才能汇总值并获取平均值。 – jp2code 2011-03-24 17:39:48
我编辑了代码,给出了一个更完整的例子,我认为你在做什么。 – jp2code 2011-03-24 17:48:31