2014-01-09 48 views
0

我有一个静态方法,检查给定列的总和。我使用它在事件RowsAdded,但我得到了以下错误:如何检查DataGridView中的单元格是否存在?

System.NullReferenceException was unhandled 
Message=Object reference not set to an instance of an object. 

这里是我的代码,请告诉我,我错了

public static decimal datagSum(DataGridView dgv, string colName) 
{ 
    int i = dgv.RowCount - 1, j = 0; 
    decimal dgvSum = 0; 
    decimal k = 0; 
    while (j < i) 
    { 
     if (dgv.Rows[(i - 1)].Cells.Count > 3) 
     { 

      if (decimal.TryParse(dgv.Rows[(i - 1)].Cells[colName].Value.ToString(), out k)) 
      { 
       dgvSum += k; 
      } 
      j++; 

     } 
    } 
    return dgvSum; 
} 
+0

如果您但在开始处的断点和悬停在每个变量上,你可以检查哪一部分是空的 – Coops

+0

当你得到这个异常,它没有给你行号? – sthotakura

+0

@GovindaRajbhar:你很想改善别人的帖子,但是在编辑帖子时,花些时间确保你已经解决了所有的格式问题,确保明显的拼写/语法/标点符号错误(例如“我”而不是“我”)被修复 - 这有助于确保别人不必再去编辑帖子,时间。谢谢! –

回答

0

代码段

if (dataGridView1.Columns[e.ColumnIndex].Name == "CompanyName") 
    { 
     if (String.IsNullOrEmpty(e.FormattedValue.ToString())) 
     { 
      dataGridView1.Rows[e.RowIndex].ErrorText = 
       "Company Name must not be empty"; 
      e.Cancel = true; 
     } 
    } 
相关问题