Compartir a través de


Controlar eventos de DataSet

El objeto DataSet proporciona tres eventos: Disposed, Initializedy MergeFailed.

Evento MergeFailed

El evento de uso más común del objeto DataSet es MergeFailed, que se inicia cuando los esquemas de los objetos DataSet que se están combinando entran en conflicto. Esto se produce cuando los objetos DataRow de origen y de destino tienen el mismo valor de clave principal y la propiedad EnforceConstraints se establece en true. Por ejemplo, si las columnas de clave principal de una tabla que se está combinando son las mismas entre las tablas de los dos objetos DataSet , se produce una excepción y se provoca el evento MergeFailed . El objeto MergeFailedEventArgs pasado como parámetro al evento MergeFailed tiene una propiedad Conflict que identifica el conflicto en el esquema entre los dos objetos DataSet , y una propiedad Table que identifica el nombre de la tabla en conflicto.

En el fragmento de código siguiente se muestra cómo agregar un controlador de eventos para el evento 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);  
}  

Evento Initialized

El evento Initialized se produce después de que el constructor de DataSet inicialice una nueva instancia del objeto DataSet.

La propiedad IsInitialized devuelve true si se ha completado la inicialización de DataSet ; de lo contrario, devuelve false. El método BeginInit , que comienza la inicialización de DataSet, establece IsInitialized en false. El método EndInit , que finaliza la inicialización del objeto DataSet, lo establece en true. Estos métodos los utiliza el entorno de diseño de Visual Studio para inicializar un objeto DataSet que está siendo utilizado por otro componente. No los utilizará habitualmente en el código.

Evento Disposed

El objetoDataSet se deriva de la clase MarshalByValueComponent , que expone el método Dispose y el evento Disposed . El evento Disposed agrega un controlador de eventos para escuchar el evento eliminado en el componente. Puede usar el evento Disposed de un objeto DataSet si quiere ejecutar el código al llamar al método Dispose. Dispose libera los recursos que usa MarshalByValueComponent.

Nota

Los objetos DataSet y DataTable se heredan de MarshalByValueComponent y admiten la interfaz ISerializable para obtener acceso a ellos de forma remota. Éstos son los únicos objetos ADO.NET a los que se puede tener acceso remoto. Para obtener más información, vea .NET Remoting.

Para obtener información sobre otros eventos disponibles al trabajar con DataSet, vea Controlar eventos de DataTable y Controlar eventos dataAdapter.

Consulte también