Verwenden von DataTable-Ereignissen
Das DataTable-Objekt bietet eine Reihe von Ereignissen, die von einer Anwendung verarbeitet werden können. In der folgenden Liste werden DataTable-Ereignisse beschrieben.
Ereignis | Beschreibung |
---|---|
ColumnChanged | Tritt ein, wenn ein Wert erfolgreich in eine Spalte eingefügt wurde. |
ColumnChanging | Tritt ein, wenn ein Wert für eine Spalte gesendet wurde. |
RowChanged | Tritt ein, nachdem eine Zeile in der Tabelle erfolgreich bearbeitet wurde. |
RowChanging | Tritt ein, wenn sich eine Zeile in der Tabelle ändert. |
RowDeleted | Tritt ein, nachdem eine Zeile in der Tabelle als Deleted markiert wurde. |
RowDeleting | Tritt ein, bevor eine Zeile in der Tabelle als Deleted markiert wird. |
Im folgenden Beispiel werden vier Ereignisse erstellt: OnColumnChanged, OnColumnChanging, OnRowChanged und OnRowChanging. Jedes dieser Ereignisse tritt ein, wenn eine Spalte oder Zeile geändert wird.
AddHandler workTable.ColumnChanged, New DataColumnChangeEventHandler(AddressOf OnColumnChanged)
AddHandler workTable.ColumnChanging, New DataColumnChangeEventHandler(AddressOf OnColumnChanging)
AddHandler workTable.RowChanged, New DataRowChangeEventHandler(AddressOf OnRowChanged)
AddHandler workTable.RowChanging, New DataRowChangeEventHandler(AddressOf OnRowChanging)
Private Shared Sub OnColumnChanged(sender As Object, args As DataColumnChangeEventargs)
Console.Write(" ColumnChanged: ")
Console.Write(args.Column.ColumnName & " changed to '" & args.ProposedValue.ToString() & "'" & vbCrLf)
End Sub
Private Shared Sub OnColumnChanging(sender As Object, args As DataColumnChangeEventargs)
Console.Write("ColumnChanging: ")
Console.Write(args.Column.ColumnName & " equals '" & args.Row(args.Column).ToString() & _
"', changing to '" & args.ProposedValue.ToString() & "'" & vbCrLf)
End Sub
Private Shared Sub OnRowChanging(sender As Object, args As DataRowChangeEventargs)
If args.Action <> DataRowAction.Nothing Then
Dim actionStr As String
actionStr = System.Enum.GetName(args.Action.GetType(), args.Action)
Console.WriteLine(" RowChanging: Action = " & actionStr & ", CustID = " & args.Row("CustID").ToString())
End If
End Sub
Private Shared Sub OnRowChanged(sender As Object, args As DataRowChangeEventargs)
If args.Action <> DataRowAction.Nothing Then
Dim actionStr As String
actionStr = System.Enum.GetName(args.Action.GetType(), args.Action)
Console.WriteLine(" RowChanged: Action = " & actionStr & ", CustID = " & args.Row("CustID").ToString())
End If
End Sub
[C#]
workTable.ColumnChanged += new DataColumnChangeEventHandler(OnColumnChanged);
workTable.ColumnChanging += new DataColumnChangeEventHandler(OnColumnChanging);
workTable.RowChanged += new DataRowChangeEventHandler(OnRowChanged);
workTable.RowChanging += new DataRowChangeEventHandler(OnRowChanging);
protected static void OnColumnChanged(object sender, DataColumnChangeEventArgs args)
{
Console.Write(" ColumnChanged: ");
Console.Write(args.Column.ColumnName + " changed to '" + args.ProposedValue + "'\n");
}
protected static void OnColumnChanging(object sender, DataColumnChangeEventArgs args)
{
Console.Write("ColumnChanging: ");
Console.Write(args.Column.ColumnName + " equals '" + args.Row[args.Column] +
"', changing to '" + args.ProposedValue + "'\n");
}
protected static void OnRowChanging(object sender, DataRowChangeEventArgs args)
{
if (args.Action != DataRowAction.Nothing)
Console.WriteLine(" RowChanging: Action = " + args.Action + ", CustID = " + args.Row["CustID"]);
}
protected static void OnRowChanged(object sender, DataRowChangeEventArgs args)
{
if (args.Action != DataRowAction.Nothing)
Console.WriteLine(" RowChanged: Action = " + args.Action + ", CustID = " + args.Row["CustID"]);
}
Siehe auch
Bearbeiten von Daten in einer Datentabelle | DataTable-Klasse