2014-01-14 55 views
1

因此,这是我的网格视图的Sum()方法。为什么我会为我的DataGridView获取空引用错误

private double CellSum() 
{ 
    double sum = 0; 
    for (int i = 0; i < dataGridView1.Rows.Count; i++) 
    { 
     double d = 0; 
     Double.TryParse(dataGridView1.Rows[i].Cells[0].Value.ToString(), out d); // runtime error 
     sum += d; 
    } 
    return sum; 
} 

每当我点击按钮,我就会调用Sum()方法,它返回一列的总数。

private void button1_Click(object sender, EventArgs e) 
{ 
    textBox1.Text = CellSum().ToString(); 
} 

如何求和一列的总和?我记得在这个网站的某个地方拉这个代码,但它似乎并没有为我工作。

我只有3列,我没有设置任何属性,所以它是默认的。

回答

4

Value可能返回null,这将导致ToString()炸毁。

试试这个:如果要转换的字符串为空

Double.TryParse(Convert.ToString(dataGridView1.Rows[i].Cells[0].Value), out d); 

Convert.ToString()会返回一个空字符串,而ToString()只是抛出一个异常。

现在如果Value为空,d应该包含0,所以你可以保持其余的代码相同。

+0

非常感谢这:) – puretppc

相关问题