Опубликован: 05.08.2007 | Уровень: специалист | Доступ: платный
Лекция 8:

Объекты DataTable, DataRow и DataColumn

События объекта 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).

 Проект "DataTableEvents"

Рис. 8.21. Проект "DataTableEvents"

В обработчиках событий можно добавить соответствующие действия, например, подтверждение изменения ( RowChanging ) или удаления ( RowDeleting ).

В программном обеспечении к курсу вы найдете приложение DataTable Events (Code\Glava4\ DataTableEvents).

Александра Тимофеева
Александра Тимофеева
Украина, Киев
Bakke Aleksander
Bakke Aleksander
Россия, Mуниципальный округ N 4