Compartir a través de


LinqDataSource.Inserting Evento

Definición

Tiene lugar antes de una operación de inserción.

public:
 event EventHandler<System::Web::UI::WebControls::LinqDataSourceInsertEventArgs ^> ^ Inserting;
public event EventHandler<System.Web.UI.WebControls.LinqDataSourceInsertEventArgs> Inserting;
member this.Inserting : EventHandler<System.Web.UI.WebControls.LinqDataSourceInsertEventArgs> 
Public Custom Event Inserting As EventHandler(Of LinqDataSourceInsertEventArgs) 

Tipo de evento

Ejemplos

En el ejemplo siguiente se muestra un controlador de eventos para el Inserting evento que modifica los datos antes de la operación de inserción. El objeto desde el NewObject propiedad se convierte en un tipo denominado Product. El DateModified propiedad de la Product objeto se establece en la fecha y hora actuales.

protected void LinqDataSource_Inserting(object sender, LinqDataSourceInsertEventArgs e)
{
    Product product = (Product)e.NewObject;
    product.DateModified = DateTime.Now;
}
Protected Sub LinqDataSource_Inserting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LinqDataSourceInsertEventArgs)
    Dim product As Product
    product = CType(e.NewObject, Product)
    product.DateModified = DateTime.Now
End Sub

En el ejemplo siguiente se muestra un controlador de eventos para el Inserting evento que recupera excepciones de validación.

Protected Sub LinqDataSource_Inserting(ByVal sender As Object, _  
        ByVal e As LinqDataSourceInsertEventArgs)  
    If (e.Exception IsNot Nothing) Then  
        For Each innerException As KeyValuePair(Of String, Exception) _  
               In e.Exception.InnerExceptions  
            Label1.Text &= innerException.Key & ": " & _  
                innerException.Value.Message & "<br />"  
        Next  
        e.ExceptionHandled = True  
    End If  
End Sub  
protected void LinqDataSource_Inserting(object sender,   
        LinqDataSourceInsertEventArgs e)  
{  
    if (e.Exception != null)  
    {  
        foreach (KeyValuePair<string, Exception> innerException in   
             e.Exception.InnerExceptions)  
        {  
        Label1.Text += innerException.Key + ": " +   
            innerException.Value.Message + "<br />";  
        }  
        e.ExceptionHandled = true;  
    }  
}  

En el ejemplo anterior se recuperan excepciones de validación. Se podría producir una excepción si un valor no coincide con el tipo de la propiedad . También se puede producir desde una comprobación personalizada, como la del ejemplo siguiente. El OnAgeChanging método comprueba que el número para el Age propiedad no es negativa.

partial void  OnAgeChanging(int? value)  
{  
    if (value < 0)  
    {  
        throw new Exception("Age cannot be a negative number.");  
    }  
}  
Private Sub OnAgeChanging(ByVal value As System.Nullable(Of Integer))  
    If (value < 0) Then  
        Throw New Exception("Age cannot be a negative number.")  
    End If  
End Sub  

Comentarios

Controle el Inserting evento para validar el objeto que se va a insertar, para examinar los errores de validación de datos de la clase de datos, cambiar un valor antes de la operación de inserción o cancelar la operación de inserción. La LinqDataSourceInsertEventArgs objeto pasa a controladores de eventos para este evento contiene el nuevo objeto se va a insertar en el origen de datos.

Si se produce un error de validación durante la operación de inserción, el LinqDataSourceInsertEventArgs objeto contiene las excepciones de validación producidas por la clase de datos. Se produce un error de validación si un valor que se va a insertar no coincide con el tipo de la propiedad en la clase de datos o si no pasa una comprobación de validación personalizada. En un controlador de eventos para el Inserting evento, puede recuperar las excepciones de validación y realizar las acciones adecuadas.

Si se produce una excepción en un controlador de eventos para el Inserting evento, debe controlar la excepción en ese controlador de eventos. La excepción no se pasará a un controlador de eventos para el Inserted evento (a través de la Exception propiedad del LinqDataSourceStatusEventArgs objeto ). La Exception propiedad contiene solo las excepciones que se producen después del Inserting evento.

Se aplica a