次の方法で共有


DataTableCollection.RemoveAt(Int32) メソッド

定義

指定したインデックス位置にある DataTable オブジェクトをコレクションから削除します。

public:
 void RemoveAt(int index);
public void RemoveAt (int index);
member this.RemoveAt : int -> unit
Public Sub RemoveAt (index As Integer)

パラメーター

index
Int32

削除する DataTable のインデックス。

例外

このコレクションには指定したインデックス位置にテーブルがありません。

次の例では、 Contains メソッドと CanRemove メソッドを使用して、インデックス 10 でテーブルが存在するかどうかをテストします。 その場合は、 メソッドが RemoveAt 呼び出されてテーブルが削除されます。

public static void DataTableCollectionRemoveAt()
{
    // Create a DataSet with two tables and then
    // remove the tables from the collection using RemoveAt.
    DataSet dataSet = new DataSet();

    // Create Customer table.
    DataTable customerTable = new DataTable("Customers");
    customerTable.Columns.Add("customerId",
        typeof(int)).AutoIncrement = true;
    customerTable.Columns.Add("name", typeof(string));
    customerTable.PrimaryKey = new DataColumn[] { customerTable.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[] { customerTable, ordersTable });

    // Remove all tables.
    // First check to see if the table can be removed,
    // then remove it.
    //
    // You cannot use a foreach when removing items
    // from a collection.
    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);
    }
}
Public Sub DataTableCollectionRemoveAt()
    ' Create a DataSet with two tables and then
    ' remove the tables from the collection using RemoveAt.
    Dim dataSet As New DataSet()

    ' Create Customer table.
    Dim customerTable As New DataTable("Customers")
    customerTable.Columns.Add("customerId", _
        GetType(Integer)).AutoIncrement = True
    customerTable.Columns.Add("name", GetType(String))
    customerTable.PrimaryKey = New DataColumn() _
        {customerTable.Columns("customerId")}

    ' Create Orders table.
    Dim ordersTable As New DataTable("Orders")
    ordersTable.Columns.Add("orderId", _
        GetType(Integer)).AutoIncrement = True
    ordersTable.Columns.Add("customerId", GetType(Integer))
    ordersTable.Columns.Add("amount", GetType(Double))
    ordersTable.PrimaryKey = New DataColumn() _
        {ordersTable.Columns("orderId")}

    dataSet.Tables.AddRange(New DataTable() _
        {customerTable, ordersTable})

    ' Remove all tables.
    ' First check to see if the table can be removed,
    ' then remove it.
    '
    ' You cannot use a foreach when removing items
    ' from a collection.
    Do While (dataSet.Tables.Count > 0)
        Dim table As DataTable = dataSet.Tables(0)
        If (dataSet.Tables.CanRemove(table)) Then
            dataSet.Tables.RemoveAt(0)
        End If
        Console.WriteLine("dataSet has {0} tables", _
            dataSet.Tables.Count)
    Loop
End Sub

注釈

イベントは CollectionChanged 、テーブルが正常に削除されたときに発生します。

適用対象

こちらもご覧ください