События объекта DataTable
Объект DataTable содержит ряд событий, которые могут применяться для слежения за происходящими изменениями. Наиболее часто используются следующие события:
- ColumnChanged - наступает после изменения содержимого поля таблицы;
- ColumnChanging - происходит в течение редактирования содержимого поля таблицы;
- RowChanged - наступает после изменения объекта DataRow (записи);
- RowChanging - происходит в течение редактирования объекта DataRow;
- RowDeleted - наступает после удаления объекта DataRow;
- RowDeleting - происходит при удалении объекта DataRow.
Скопируйте папку приложения RowVersion, назовите ее "Data TableEvents". В конструкторе формы добавим обработку четырех событий объекта DataTable:
public Form1() { ... dtTours.RowChanging += new DataRowChangeEventHandler(dtTours_RowChanging); dtTours.RowChanged += new DataRowChangeEventHandler(dtTours_RowChanged); dtTours.RowDeleting += new DataRowChangeEventHandler(dtTours_RowDeleting); dtTours.RowDeleted += new DataRowChangeEventHandler(dtTours_RowDeleted); }
В соответствующих методах просто выводим сообщение в текстовое поле:
private void dtTours_RowChanging(object sender, DataRowChangeEventArgs e) { rtbReport.Text += String.Format("Событие - изменение записи\n", e.Row["Название"]); }
private void dtTours_RowChanged(object sender, DataRowChangeEventArgs e) { rtbReport.Text += "\nСобытие - запись изменена\n"; }
private void dtTours_RowDeleting(object sender, DataRowChangeEventArgs e) { rtbReport.Text += String.Format("Событие - удаление записи\n", e.Row["Название"]); }
private void dtTours_RowDeleted(object sender, DataRowChangeEventArgs e) { rtbReport.Text += "\nСобытие - запись удалена\n"; }
Запускаем приложение. Нажимаем кнопку "Begin Edit", затем "End Edit" - происходят события RowChanging и RowChanged. Удаляем запись - происходят события RowDeleting и RowDeleted (рис. 8.21).
Рис. 8.21. Проект "DataTableEvents"
В обработчиках событий можно добавить соответствующие действия, например, подтверждение изменения (RowChanging) или удаления (RowDeleting).
В программном обеспечении к курсу вы найдете приложение DataTable Events (Code\Glava4\ DataTableEvents).
1)
Дополнительные сведения об этом классе см. в конце Лекции 9.
2)
Не забудьте в классе формы создать объект DataSet: DataSet dsTests = new DataSet();