DataTable.Compute无法正常工作

时间:2012-12-10 11:09:43

标签: c# datatable dataset

使用DataTable.Compute()方法,但获取

  

“聚合参数中的语法错误:期望单个列   可能有'Child'限定符的参数。 “

我的代码:

  int x = Convert.ToInt32(DataSet1.Tables[0].
       Compute("SUM(Convert([qty],'System.Int32'))","[code] = 'ABC'"));

这里的代码是数据表的列,我正在读取数量的总和。但我认为错误可能是因为qty是string类型而无法转换为int类型,但不确定。

期待您的回答和提前感谢。

2 个答案:

答案 0 :(得分:2)

最好通过这样做来尝试linq

int quantitysum= dt.Rows.Where(dr=>((string)dr["code"]) == "ABC") 
                             .Select(dr=>(int)dr["qty"]).Sum();

答案 1 :(得分:2)

Vinod不会将您的数量与System.Int32进行比较。只需写下

Object Result = DataSet1.Table[0].Compute("SUM(qty)","code = 'ABC'");

然后您可以在投射到Object之后使用integer