我正在使用以下代码,但没有得到任何结果,而是一片空白,并抛出诸如
的错误Object cannot be cast from DBNull to other types.
第三列和第四列分别是FF
和BW
数据表值将类似于
C1 c2 FF BW
56 122 3 4
23 45 7
45 78 6
12 34 6 9
我想将总FF设为15,将总BW设为20
decimal FF = 0, BW = 0, AF = 0;
DataTable table = dtPointLinks.Clone();
table.Columns[0].DataType = typeof(string);
table.Columns[1].DataType = typeof(string);
table.Columns[2].DataType = typeof(string);
table.Columns[3].DataType = typeof(string);
// Declare an object variable.
object objFF;
objFF = table.Compute("Sum(FF)", string.Empty);
object objBW;
objBW = table.Compute("Sum(BW)", string.Empty);
FF = Convert.ToDecimal(objFF);
BW = Convert.ToDecimal(objBW);
不知道这里出了什么问题
答案 0 :(得分:0)
根据您的情况,您可以尝试使用传统的 for循环来获得所需的答案。
以下是示例代码,展示了如何实现此目标。
decimal FF = 0;
decimal BW = 0;
for (int i = 0; i < dt.Rows.Count; i++)
{
if(dt.Rows[i]["FF"].ToString() != "")
{
FF += Convert.ToDecimal(dt.Rows[i]["FF"].ToString());
}
if (dt.Rows[i]["BW"].ToString() != "")
{
BW += Convert.ToDecimal(dt.Rows[i]["BW"].ToString());
}
}
最终结果将为 FF = 15 和 BW = 20 。
希望这可以为您提供帮助。