LinqDataSource.Inserting Zdarzenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Występuje przed operacją wstawiania.
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)
Typ zdarzenia
Przykłady
Poniższy przykład przedstawia procedurę obsługi zdarzeń dla Inserting zdarzenia, które modyfikuje dane przed operacją wstawiania. Obiekt z NewObject właściwości jest rzutowy do typu o nazwie Product
. Właściwość DateModified
Product
obiektu jest ustawiona na bieżącą datę i godzinę.
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
Poniższy przykład przedstawia procedurę obsługi zdarzeń dla Inserting zdarzenia, które pobiera wyjątki weryfikacji.
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;
}
}
W poprzednim przykładzie są pobierane wyjątki walidacji. Wyjątek może zostać zgłoszony, jeśli wartość nie jest zgodna z typem właściwości. Może zostać również wyrzucony z niestandardowego sprawdzania, takiego jak ten w poniższym przykładzie. Metoda OnAgeChanging
sprawdza, czy liczba właściwości Age
nie jest ujemna.
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
Uwagi
Obsłuż zdarzenie, Inserting aby zweryfikować obiekt do wstawienia, aby sprawdzić błędy walidacji danych z klasy danych, zmienić wartość przed operacją wstawiania lub anulować operację wstawiania. Obiekt LinqDataSourceInsertEventArgs przekazany do procedur obsługi zdarzeń dla tego zdarzenia zawiera nowy obiekt do wstawienia w źródle danych.
Jeśli podczas operacji wstawiania wystąpi błąd walidacji, LinqDataSourceInsertEventArgs obiekt zawiera wyjątki weryfikacji, które są zgłaszane przez klasę danych. Błąd sprawdzania poprawności występuje, jeśli wartość do wstawienia nie jest zgodna z typem właściwości w klasie danych lub jeśli nie przejdzie sprawdzania poprawności niestandardowej. W procedurze obsługi zdarzeń dla Inserting zdarzenia można pobrać wyjątki weryfikacji i podjąć odpowiednie działania.
Jeśli wyjątek jest zgłaszany w procedurze obsługi zdarzeń dla Inserting zdarzenia, należy obsłużyć wyjątek w tej procedurze obsługi zdarzeń. Wyjątek nie zostanie przekazany do programu obsługi zdarzeń dla Inserted zdarzenia (za pośrednictwem Exception właściwości LinqDataSourceStatusEventArgs obiektu). Właściwość Exception zawiera tylko wyjątki, które są zgłaszane po zdarzeniu Inserting .