Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Объект DataSet предоставляет три события: Disposed, Initializedи MergeFailed.
Событие MergeFailed
Наиболее часто используемым событием DataSet объекта является MergeFailed, которое возникает при конфликте схемы у объединяемых DataSet объектов. Это происходит, когда целевой объект и источник DataRow имеют то же значение первичного ключа, а EnforceConstraints свойство имеет значение true. Например, если первичные ключевые столбцы таблицы совпадают между таблицами в двух DataSet объектах, создается исключение, а затем происходит MergeFailed вызов события. Объект MergeFailedEventArgs , переданный MergeFailed событию, имеет Conflict свойство, определяющее конфликт в схеме между двумя DataSet объектами, и Table свойство, определяющее имя таблицы в конфликте.
В следующем фрагменте кода показано, как добавить обработчик событий для MergeFailed события.
AddHandler workDS.MergeFailed, New MergeFailedEventHandler( _
AddressOf DataSetMergeFailed)
Private Shared Sub DataSetMergeFailed( _
sender As Object,args As MergeFailedEventArgs)
Console.WriteLine("Merge failed for table " & args.Table.TableName)
Console.WriteLine("Conflict = " & args.Conflict)
End Sub
workDS.MergeFailed += new MergeFailedEventHandler(DataSetMergeFailed);
private static void DataSetMergeFailed(
object sender, MergeFailedEventArgs args)
{
Console.WriteLine("Merge failed for table " + args.Table.TableName);
Console.WriteLine("Conflict = " + args.Conflict);
}
Инициализированное событие
Событие Initialized происходит после того, как конструктор DataSet инициализирует новый экземпляр DataSet.
Свойство возвращает IsInitialized, если true завершена инициализация; в противном случае возвращается DataSet. Метод BeginInit, начинающий инициализацию DataSet, устанавливает IsInitialized в false. Метод EndInit , который заканчивает инициализацию DataSet, задает для него значение true. Эти методы используются средой конструктора Visual Studio для инициализации DataSet , используемой другим компонентом. Они обычно не используются в коде.
Событие утилизации
DataSet является производным от класса MarshalByValueComponent, который предоставляет как метод Dispose, так и событие Disposed. Событие Disposed добавляет обработчик событий для прослушивания удаленного события компонента. Вы можете использовать событие Disposed в DataSet, если хотите выполнить код, когда вызывается метод Dispose.
Dispose освобождает ресурсы, используемые параметром MarshalByValueComponent.
Замечание
Объекты DataSet и DataTable наследуются классом MarshalByValueComponent и поддерживают интерфейс ISerializable для удаленного взаимодействия. Это единственные ADO.NET объекты, которые могут быть удалены. Дополнительные сведения см. в статье о .NET Remoting.
Для получения информации о других событиях, доступных при работе с DataSet, см. разделы «Обработка событий DataTable» и «Обработка событий DataAdapter».