Partilhar via


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 DataSetcomo 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.

Consulte também