我想在c#中做方法计算,但是当我运行代码时,给我转换值的错误。消息错误是“对象不能从DBNull转换为其他类型”。该错误从行int bal = 0开始;在计算转换
private void btn_total_Click(object sender, EventArgs e)
{
//int[] columnData = (from DataGridViewRow row in dataGridView3.Rows where row.Cells[2].FormattedValue.ToString() != string.Empty select Convert.ToInt32(row.Cells[2].FormattedValue)).ToArray();
//lbl_sum.Text = columnData.Sum().ToString();
int sum = 0;
for (int i = 0; i < dataGridView3.Rows.Count; ++i)
{
sum += Convert.ToInt32(dataGridView3.Rows[i].Cells[2].Value);
}
int bal = 0;
for (int i = 0; i < dataGridView3.Rows.Count; ++i)
{
bal = Convert.ToInt32(dataGridView3.Rows[i].Cells[3].Value) - sum;
}
if (bal <0)
{
label_bal_pay.Text = bal.ToString();
}
else
{
lbl_bal.Text = bal.ToString();
}
label_bal_pay.Text = bal.ToString();
lbl_bal.Text = bal.ToString();
lbl_sum.Text = sum.ToString();
}
对该问题添加错误的完整描述。如果您尝试调试您的代码并了解您自己的错误,那么它也不会坏。可能你的错误是以dataGridView3.Rows [i] .Cells [3] .Value'的形式给出的,它可以包含非整数的值。 –
我已经编辑了描述。该列中的值是整数。 @ S.Petrosov –
不要在* grid *上执行计算,在实际数据上执行该操作,无论这是数据网格还是对象列表。在这种情况下,您不必解析字符串 –