2014-01-09 4 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: Замечательно, что вы пытаетесь улучшить сообщения других людей, но при редактировании сообщений было бы неплохо потратить время, чтобы убедиться, что вы исправили все проблемы форматирования, а также сделали что очевидные ошибки орфографии/грамматики/пунктуации (такие как «i» вместо «I») исправлены - это помогает убедиться, что кому-то еще не нужно идти и редактировать сообщение снова, время. Благодаря! –

ответ

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; 
     } 
    } 
Смежные вопросы