如何获得两列乘法的总和

时间:2014-04-09 08:52:17

标签: c# datatable

我有一个数据表,其中有两列名为col1和col2。我想获得每一行(col1 * col2)的总和。 我正在使用以下代码..

object sumObject;
sumObject = dt.Compute("Sum(col1* col2)", "(id = '" + id+ "') ");

但它没有奏效。它会产生一个错误:

Syntax error in aggregate argument: Expecting a single column argument with possible 'Child' qualifier.

2 个答案:

答案 0 :(得分:5)

更易读的方法是使用LINQ-To-DataSet

int sumTotal = dt.AsEnumerable()
    .Where(r => r.Field<int>("id") == id)
    .Sum(r => r.Field<int>("col1") * r.Field<int>("col2") );

答案 1 :(得分:1)

double dTotal = 0.0;
foreach (DataRow dr in dt.Rows) 
{
   double dValue1, dValue2;

   if (!double.TryParse(dr["col1"].ToString(), out dValue1))
   {
       //error parsing
       break;
   }
   if (!double.TryParse(dr["col2"].ToString(), out dValue2))
   {
       //error parsing
       break;
   }
   dTotal += dValue1 * dValue2;
}