DataTableCollection.CollectionChanging Kejadian
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Terjadi saat DataTableCollection sedang berubah karena DataTable objek ditambahkan atau dihapus.
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
Jenis Acara
Contoh
Contoh berikut menunjukkan cara menggunakan peristiwa.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
Keterangan
Untuk informasi selengkapnya tentang cara menangani peristiwa, lihat Menangani dan Menaikkan Peristiwa.
Berlaku untuk
Berkolaborasi dengan kami di GitHub
Sumber untuk konten ini dapat ditemukan di GitHub, yang juga dapat Anda gunakan untuk membuat dan meninjau masalah dan menarik permintaan. Untuk informasi selengkapnya, lihat panduan kontributor kami.