我正面临这个错误“:期望单个列参数可能带有'Child'限定符。”在下面一行。我无法解决问题。基本上我正在尝试对“数量”列值进行求和,其中'[BATCH NUM]'列值等于组合框选定值。
sold_quantity = Convert.ToInt64(dt.Compute("Sum(Convert(QTY,'System.Int64')", "[BATCH NUM] = '"+Convert.ToInt32(comboBox3.SelectedValue)+"'"));
答案 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")));