LinqDataSource.Updating Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Tritt vor einem Aktualisierungsvorgang ein.
public:
event EventHandler<System::Web::UI::WebControls::LinqDataSourceUpdateEventArgs ^> ^ Updating;
public event EventHandler<System.Web.UI.WebControls.LinqDataSourceUpdateEventArgs> Updating;
member this.Updating : EventHandler<System.Web.UI.WebControls.LinqDataSourceUpdateEventArgs>
Public Custom Event Updating As EventHandler(Of LinqDataSourceUpdateEventArgs)
Ereignistyp
Beispiele
Das folgende Beispiel zeigt einen Ereignishandler für das Updating Ereignis. Der Code vergleicht Eigenschaften aus der OriginalObject -Eigenschaft und der NewObject -Eigenschaft, um festzustellen, ob sich ein Wert geändert hat. Wenn sich der Wert geändert hat, wird ein Wert der NewObject -Eigenschaft auf true
festgelegt.
protected void LinqDataSource_Updating(object sender, LinqDataSourceUpdateEventArgs e)
{
Product originalProduct = (Product)e.OriginalObject;
Product newProduct = (Product)e.NewObject;
if (originalProduct.Category != newProduct.Category)
{
newProduct.CategoryChanged = true;
}
}
Protected Sub LinqDataSource_Updating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LinqDataSourceUpdateEventArgs)
Dim originalProduct As Product
Dim newProduct As Product
originalProduct = CType(e.OriginalObject, Product)
newProduct = CType(e.NewObject, Product)
If (originalProduct.Category <> newProduct.Category) Then
newProduct.CategoryChanged = True
End If
End Sub
Das folgende Beispiel zeigt einen Ereignishandler für das Ereignis, das Updating Validierungsausnahmen abruft.
Protected Sub LinqDataSource_Updating(ByVal sender As Object, _
ByVal e As LinqDataSourceUpdateEventArgs)
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_Updating(object sender,
LinqDataSourceUpdateEventArgs 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;
}
}
Im vorherigen Beispiel werden Validierungsausnahmen abgerufen. Eine Ausnahme kann ausgelöst werden, wenn ein Wert nicht mit dem Typ der Eigenschaft übereinstimmt. Es kann auch von einer benutzerdefinierten Überprüfung wie der im folgenden Beispiel ausgelöst werden. Die OnAgeChanging
-Methode überprüft, ob die Zahl für die Age
Eigenschaft nicht negativ ist.
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
Hinweise
Behandeln Sie das Updating Ereignis, um das zu aktualisierende Objekt zu überprüfen, Datenüberprüfungsfehler aus der Datenklasse zu untersuchen, einen Wert vor dem Aktualisierungsvorgang zu ändern oder den Aktualisierungsvorgang abzubrechen. Das LinqDataSourceUpdateEventArgs an Ereignishandler übergebene Objekt enthält sowohl das ursprüngliche als auch das aktualisierte Objekt.
Wenn während des Aktualisierungsvorgangs ein Validierungsfehler auftritt, enthält das LinqDataSourceInsertEventArgs Objekt die Validierungsausnahmen, die von der Datenklasse ausgelöst werden. Ein Validierungsfehler tritt auf, wenn ein zu aktualisierener Wert nicht mit dem Typ der Eigenschaft in der Datenklasse übereinstimmt oder eine benutzerdefinierte Überprüfung nicht besteht. In einem Ereignishandler für das Updating Ereignis können Sie die Validierungsausnahmen abrufen und entsprechende Maßnahmen ergreifen.
Wenn eine Ausnahme in einem Ereignishandler für das Updating Ereignis ausgelöst wird, müssen Sie die Ausnahme in diesem Ereignishandler behandeln. Die Ausnahme wird nicht an einen Ereignishandler für das Updated Ereignis übergeben (über die Exception -Eigenschaft des LinqDataSourceStatusEventArgs -Objekts). Die Exception -Eigenschaft enthält nur die Ausnahmen, die nach dem Updating Ereignis ausgelöst werden.