我正在尝试实施:
dtGroupedBy.Compute("sum(POWER)",dvv.RowFilter);
导致错误:
聚合函数Sum()和Type:String。
的使用无效
我们如何将其转换为列类型?
答案 0 :(得分:1)
这取决于您创建DataTable
的方式。如果它只是直接来自SQL,那么您应该考虑更改SQL本身,以便在获取它时转换POWER列。
但是,如果值首先应该始终为数字,我强烈建议您重新访问数据库模式 - 如果可能的话,更改列类型会更清晰。
答案 1 :(得分:1)
您不能在字符串字段上使用Sum()
聚合函数。
你可以做两件事
System.Int32
转换。
所以你可以做以下dtGroupedBy.Compute(“sum(CONVERT(”+ POWER + “ 'System.Int32'))”,dvv.RowFilter);
答案 2 :(得分:1)
Compute方法支持表达式,它们支持您可以在表达式中使用的CONVERT function
。
例如,您可以计算列的总和,如
MyDataTable.Compute("Sum(Convert(your column name, 'Data Type'))")