2014-01-09 55 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; 
     } 
    } 
相關問題