2013-12-25 3 views
1

У меня есть DataGridView на основе таблицы Table1 DataSet DS1. Когда я вношу изменения в DataGridView и нажимаю кнопку CancelChanges, он работает нормально. Но если нет никаких изменений в DataGridView (т.е. GetChanges() метод не возвращает ни одной строки) и я нажимаю кнопку CancelChanges, он выдает следующие ошибки: -Ошибка Когда метод GetChanges не возвращает строку

"Object Reference not set to an instance of an object"

на линии if (DgvChangedDT.Rows.Count != 0)

private void btnCancelChanges_Click(object sender, EventArgs e) 
    { 
     DataTable DgvChangedDT = new DataTable(); 
     DgvChangedDT = DS1.Table1.GetChanges(); 
     if (DgvChangedDT.Rows.Count != 0) 
     { 
      DS1.Table1.RejectChanges(); 
      DS1.Table1.AcceptChanges(); 
     } 
     else 
     { 
      MessageBox.Show("There are no pending changes."); 
     } 
    } 

Может кто-нибудь сказать мне причину ошибки и средства для этого?

ответ

0

Попробуйте следующий код:

private void btnCancelChanges_Click(object sender, EventArgs e) 
{ 
    DataTable DgvChangedDT = new DataTable(); 
    DgvChangedDT = DS1.Table1.Changes(); 
    if (DgvChangedDT != null && DgvChangedDT.Rows.Count != 0) 
    { 
     DS1.Table1.RejectChanges(); 
     DS1.Table1.AcceptChanges(); 
    } 
    else 
    { 
     MessageBox.Show("There are no pending changes."); 
    } 
} 

Поскольку и отсутствовал нулевой чек DgvChangedDT, если пользователь не делают изменения в DGV тогда DS1.Table1.Changes(); возвратит нулевое значение.

+0

Спасибо ..... Это сработало :) –

Смежные вопросы