Condividi tramite


LinqDataSource.Inserting Evento

Definizione

Si verifica prima di un'operazione di inserimento.

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 evento

Esempio

Nell'esempio seguente viene illustrato un gestore eventi per l'evento Inserting che modifica i dati prima dell'operazione di inserimento. L'oggetto della proprietà viene eseguito il NewObject cast a un tipo denominato Product. La DateModified proprietà dell'oggetto è impostata sulla data e l'ora Product correnti.

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

Nell'esempio seguente viene illustrato un gestore eventi per l'evento Inserting che recupera le eccezioni di convalida.

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;  
    }  
}  

Nell'esempio precedente vengono recuperate le eccezioni di convalida. È possibile che venga generata un'eccezione se un valore non corrisponde al tipo della proprietà. Può anche essere generata da un controllo personalizzato, ad esempio quello nell'esempio seguente. Il OnAgeChanging metodo verifica che il numero della Age proprietà non sia negativo.

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  

Commenti

Gestire l'evento Inserting per convalidare l'oggetto da inserire, per esaminare gli errori di convalida dei dati dalla classe dati, per modificare un valore prima dell'operazione di inserimento o per annullare l'operazione di inserimento. L'oggetto LinqDataSourceInsertEventArgs passato ai gestori eventi per questo evento contiene il nuovo oggetto da inserire nell'origine dati.

Se si verifica un errore di convalida durante l'operazione di inserimento, l'oggetto LinqDataSourceInsertEventArgs contiene le eccezioni di convalida generate dalla classe di dati. Si verifica un errore di convalida se un valore da inserire non corrisponde al tipo della proprietà nella classe dati o se non supera un controllo di convalida personalizzato. In un gestore eventi per l'evento Inserting è possibile recuperare le eccezioni di convalida ed eseguire le azioni appropriate.

Se viene generata un'eccezione in un gestore eventi per l'evento Inserting , è necessario gestire l'eccezione nel gestore eventi. L'eccezione non verrà passata a un gestore eventi per l'evento Inserted (tramite la Exception proprietà dell'oggetto LinqDataSourceStatusEventArgs ). La Exception proprietà contiene solo le eccezioni generate dopo l'evento Inserting .

Si applica a