Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Объект 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».