Manipulando eventos de conjunto de dados
O DataSet objeto fornece três eventos: Disposed, Initialized, e MergeFailed.
O evento MergeFailed
O evento mais comumente usado do DataSet
objeto é MergeFailed
, que é gerado quando o esquema dos DataSet
objetos que estão sendo mesclados estão em conflito. Isso ocorre quando um destino e uma origem DataRow têm o mesmo valor de chave primária e a EnforceConstraints propriedade é definida como true
. Por exemplo, se as colunas de chave primária de uma tabela que está sendo mesclada forem as mesmas entre as tabelas nos dois DataSet
objetos, uma exceção será lançada e o MergeFailed
evento será gerado. O MergeFailedEventArgs objeto passado para o MergeFailed
evento tem uma Conflict propriedade que identifica o conflito no esquema entre os dois DataSet
objetos e uma Table propriedade que identifica o nome da tabela em conflito.
O fragmento de código a seguir demonstra como adicionar um manipulador de eventos para o MergeFailed
evento.
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);
}
O evento inicializado
O Initialized evento ocorre depois que o DataSet
construtor inicializa uma nova instância do DataSet
.
A IsInitialized propriedade retorna true
se a inicialização tiver sido concluída, caso contrário, DataSet
ela retornará false
. O BeginInit método, que inicia a inicialização de um DataSet
, define IsInitialized como false
. O EndInit método, que termina a inicialização do , define-o DataSet
como true
. Esses métodos são usados pelo ambiente de design do Visual Studio para inicializar um DataSet
que está sendo usado por outro componente. Você não os usará normalmente em seu código.
O Evento Eliminado
DataSet
é derivado da MarshalByValueComponent classe, que expõe o Dispose método e o Disposed evento. O Disposed evento adiciona um manipulador de eventos para ouvir o evento descartado no componente. Você pode usar o Disposed evento de a DataSet
se quiser executar código quando o Dispose método é chamado. Dispose libera MarshalByValueComponentos recursos usados pelo .
Nota
Os DataSet
objetos e DataTable
herdam e MarshalByValueComponent suportam a ISerializable interface para comunicação remota. Estes são os únicos objetos ADO.NET que podem ser remotos. Para obter mais informações, consulte Comunicação remota .NET.
Para obter informações sobre outros eventos disponíveis ao trabalhar com um DataSet
, consulte Manipulando eventos DataTable e Manipulando eventos DataAdapter.