Control de eventos DataSet (ADO.NET)
El objeto DataSet proporciona tres eventos: Disposed, Initialized y 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 objeto DataSet 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 desea ejecutar código al llamar al método Dispose . Dispose libera los recursos utilizados por 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 Remote Objects. |
Para obtener información sobre otros eventos disponibles al trabajar con un objeto DataSet, vea Control de eventos DataTable (ADO.NET) y Control de eventos DataAdapter (ADO.NET).