Utilisation d'événements DataTable
L'objet DataTable fournit une série d'événements pouvant être traités par une application. Le tableau suivant décrit les événements DataTable.
Événement | Description |
---|---|
ColumnChanged | Se produit lorsqu'une valeur a été insérée avec succès dans une colonne. |
ColumnChanging | Se produit lorsqu'une valeur a été validée avec succès pour une colonne. |
RowChanged | Se produit lorsqu'une ligne de la table a été modifiée avec succès. |
RowChanging | Se produit lors de la modification d'une ligne de la table. |
RowDeleted | Se produit lorsqu'une ligne de la table a été marquée comme Deleted. |
RowDeleting | Se produit avant qu'une ligne de la table soit marquée comme Deleted. |
L'exemple suivant créé quatre événements : OnColumnChanged, OnColumnChanging, OnRowChanged et OnRowChanging. Chacun de ces événements se produit lors de la modification d'une ligne ou d'une colonne.
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"]);
}
Voir aussi
Manipulation de données dans un DataTable | DataTable, classe