数据表计算函数中聚合参数中的语法错误

时间:2018-06-12 07:06:56

标签: c# datatable

我正面临这个错误“:期望单个列参数可能带有'Child'限定符。”在下面一行。我无法解决问题。基本上我正在尝试对“数量”列值进行求和,其中'[BATCH NUM]'列值等于组合框选定值。

sold_quantity = Convert.ToInt64(dt.Compute("Sum(Convert(QTY,'System.Int64')", "[BATCH NUM] = '"+Convert.ToInt32(comboBox3.SelectedValue)+"'"));

2 个答案:

答案 0 :(得分:0)

我无法找到问题的直接解决方案,但我确实找到了解决方法:

首先,添加一个计算列:

dt.Columns.Add("LONGQTY", typeof(long), "CONVERT(QTY, 'System.Int64')");

其次,使用计算列进行计算:

dt.Compute("sum(LONGQTY)", "[BATCH NUM] = '"+Convert.ToInt32(comboBox3.SelectedValue)+"'")

抱歉,我的帮助不大。我看到的一切都表明你正在做的事应该起作用。

答案 1 :(得分:0)

我已经使用LINQ解决了我的上述问题,实际问题是我没有正确提到列的数据类型。

sold_quantity = dt.AsEnumerable().Where(row => row.Field<string>("BATCH NUM") == Combo3_val.ToString()).Sum(row => Convert.ToInt32( row.Field<string>("QTY")));