DataTableCollection.CollectionChanging Evento
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Viene generato mentre sono in corso le modifiche all'insieme DataTableCollection, a causa dell'aggiunta o della rimozione di oggetti DataTable.
public:
event System::ComponentModel::CollectionChangeEventHandler ^ CollectionChanging;
public event System.ComponentModel.CollectionChangeEventHandler? CollectionChanging;
public event System.ComponentModel.CollectionChangeEventHandler CollectionChanging;
member this.CollectionChanging : System.ComponentModel.CollectionChangeEventHandler
Public Custom Event CollectionChanging As CollectionChangeEventHandler
Tipo evento
Esempio
Nell'esempio seguente viene illustrato come usare l'evento CollectionChanging .
public static void TableCollectionCollectionChanging()
{
// Create a DataSet with two tables
DataSet dataSet = new DataSet();
// Assign the event-handler function for the
// CollectionChangeEvent.
dataSet.Tables.CollectionChanging +=
new System.ComponentModel.CollectionChangeEventHandler(
Collection_Changing);
// create Customer table
DataTable customersTable = new DataTable("Customers");
customersTable.Columns.Add("customerId",
typeof(int)).AutoIncrement = true;
customersTable.Columns.Add("name",
typeof(string));
customersTable.PrimaryKey = new DataColumn[] { customersTable.Columns["customerId"] };
// create Orders table
DataTable ordersTable = new DataTable("Orders");
ordersTable.Columns.Add("orderId",
typeof(int)).AutoIncrement = true;
ordersTable.Columns.Add("customerId",
typeof(int));
ordersTable.Columns.Add("amount",
typeof(double));
ordersTable.PrimaryKey = new DataColumn[] { ordersTable.Columns["orderId"] };
dataSet.Tables.AddRange(new DataTable[] { customersTable, ordersTable });
// Check to see if each table can be removed and then
// remove it.
while (dataSet.Tables.Count > 0)
{
DataTable table = dataSet.Tables[0];
if (dataSet.Tables.CanRemove(table))
{
dataSet.Tables.RemoveAt(0);
}
}
Console.WriteLine("dataSet has {0} tables",
dataSet.Tables.Count);
}
private static void Collection_Changing(object sender,
System.ComponentModel.CollectionChangeEventArgs e)
{
// Implementing this event allows you to abort a change
// to the collection by raising an exception which you can
// catch.
Console.WriteLine("Collection_Changing Event: '{0}'\table element={1}",
e.Action.ToString(), e.Element.ToString());
}
Public Sub TableCollectionCollectionChanging()
' Create a DataSet with two tables
Dim dataSet As New DataSet()
AddHandler dataSet.Tables.CollectionChanging, _
AddressOf Collection_Changing
' Create Customer table
Dim customersTable As New DataTable("Customers")
customersTable.Columns.Add("customerId", _
System.Type.GetType("System.Integer")).AutoIncrement = True
customersTable.Columns.Add("name", _
System.Type.GetType("System.String"))
customersTable.PrimaryKey = New DataColumn() _
{customersTable.Columns("customerId")}
' Create Orders table
Dim ordersTable As New DataTable("Orders")
ordersTable.Columns.Add("orderId", _
System.Type.GetType("System.Integer")).AutoIncrement = True
ordersTable.Columns.Add("customerId", _
System.Type.GetType("System.Integer"))
ordersTable.Columns.Add("amount", System.Type.GetType("System.Double"))
ordersTable.PrimaryKey = New DataColumn() {ordersTable.Columns("orderId")}
' Add the tables to the DataTableCollection
dataSet.Tables.AddRange(New DataTable() {customersTable, ordersTable})
' Remove all tables
' First check to see if the table can be removed and
' then remove it.
'
' You cannot use a For Each loop to remove items
' from a collection.
Do While (dataSet.Tables.Count > 0)
Dim table As DataTable
table = dataSet.Tables(0)
If (dataSet.Tables.CanRemove(table)) Then
dataSet.Tables.RemoveAt(0)
End If
Loop
Console.WriteLine("dataSet has {0} tables", dataSet.Tables.Count)
End Sub
Private Sub Collection_Changing(ByVal sender As Object, _
ByVal e As System.ComponentModel.CollectionChangeEventArgs)
' Implementing this event allows you to abort a change
' to the collection by raising an exception which you can
' catch.
Console.WriteLine( _
"Collection_Changing Event: '{0}'\table element={1}", _
e.Action.ToString(), e.Element.ToString())
End Sub
Commenti
Per altre informazioni su come gestire gli eventi, vedere la gestione e generazione di eventi.