LinqDataSource.Inserting Händelse

Definition

Inträffar innan en infogningsåtgärd.

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) 

Händelsetyp

Exempel

I följande exempel visas en händelsehanterare för händelsen Inserting som ändrar data före infogningsåtgärden. Objektet från egenskapen är gjutet NewObject till en typ med namnet Product. Objektets DateModifiedProduct egenskap är inställd på aktuellt datum och tid.

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

I följande exempel visas en händelsehanterare för händelsen Inserting som hämtar valideringsfel.

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

I föregående exempel hämtas verifieringsfel. Ett undantag kan utlöses om ett värde inte matchar egenskapens typ. Det kan också genereras från en anpassad kontroll, till exempel den i följande exempel. Metoden OnAgeChanging kontrollerar att talet för Age egenskapen inte är negativt.

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

Kommentarer

Inserting Hantera händelsen för att verifiera objektet som ska infogas, för att undersöka dataverifieringsfel från dataklassen, ändra ett värde före infogningsåtgärden eller avbryta infogningsåtgärden. Objektet LinqDataSourceInsertEventArgs som skickas till händelsehanterare för den här händelsen innehåller det nya objektet som ska infogas i datakällan.

Om ett verifieringsfel inträffar under infogningsåtgärden LinqDataSourceInsertEventArgs innehåller objektet de verifieringsundanstag som genereras av dataklassen. Ett valideringsfel inträffar om ett värde som ska infogas inte matchar egenskapens typ i dataklassen, eller om det inte klarar en anpassad verifieringskontroll. I en händelsehanterare för Inserting händelsen kan du hämta verifieringsfelen och vidta lämpliga åtgärder.

Om ett undantag utlöses i en händelsehanterare för Inserting händelsen måste du hantera undantaget i händelsehanteraren. Undantaget skickas inte till en händelsehanterare för Inserted händelsen (via Exception objektets LinqDataSourceStatusEventArgs egenskap). Egenskapen Exception innehåller endast de undantag som utlöses efter händelsen Inserting .

Gäller för