2

我有一个包含“No”和“Total”列的数据表。我想带回每个“否”的“总计”列的总和。我已经尝试了以下方法,但是由于我在语法上苦苦挣扎,所以遇到了几个错误。

var Values =
        (from data in DtSet.Tables["tblDetails"].AsEnumerable()
         group data by data.Field<"No">
         select new
         {
             name_1 = data.Field<double>("No"),
             name_2 = data.Field<double>("Total"),
         }
         );   
4

2 回答 2

5

Total这将为您提供属性中的字段总和,并在属性name_2中进行分组(我认为您需要在这里更好地命名)Noname_1

var Values = from row in DtSet.Tables["tblDetails"].AsEnumerable()
             group row by row.Field<double>("No") into g
             select new
             {
                 name_1 = g.Key,
                 name_2 = g.Sum(r => r.Field<double>("Total"))
             };

考虑名称NoTotalSum而不是。

于 2013-01-22T18:38:01.860 回答
1

你开始使用 linq,但老DataTable有它自己的方式

var total = DtSet.Tables["tblDetails"].Compute("sum(Total)", "No = x");

我必须把它留x在里面,因为我不知道“否”列的值。该部分"No = x"是一个过滤器。如果它为 null 或空字符串,则所有行都将用于计算。

于 2013-01-22T18:42:14.637 回答