DataRow.Delete メソッド

定義

DataRow を削除します。Deletes the DataRow.

public:
 void Delete();
public void Delete ();
member this.Delete : unit -> unit
Public Sub Delete ()

例外

DataRow が既に削除されています。The DataRow has already been deleted.

次の例では、2つの列と10個の行を含む単純な DataTable を作成します。The following example creates a simple DataTable with two columns and ten rows. Delete メソッドを使用して複数の DataRow 項目を削除した後、RejectChangesを呼び出すことによって行の1つが削除されます。After deleting several DataRow items with the Delete method, one of the rows is undeleted by invoking RejectChanges.

private void DemonstrateDeleteRow()
{
    // Create a simple DataTable with two columns and ten rows.
    DataTable table = new DataTable("table");
    DataColumn idColumn = new DataColumn("id",
        Type.GetType("System.Int32"));
    idColumn.AutoIncrement=true;
    DataColumn itemColumn = new DataColumn("item",
        Type.GetType("System.String"));
    table.Columns.Add(idColumn);
    table.Columns.Add(itemColumn);

    // Add ten rows.
    DataRow newRow;

    for(int i = 0; i <10; i++)
    {
        newRow = table.NewRow();
        newRow["item"] = "Item " + i;
        table.Rows.Add(newRow);
    }
    table.AcceptChanges();

    DataRowCollection itemColumns = table.Rows;
    itemColumns[0].Delete();
    itemColumns[2].Delete();
    itemColumns[3].Delete();
    itemColumns[5].Delete();
    Console.WriteLine(itemColumns[3].RowState.ToString());

    // Reject changes on one deletion.
    itemColumns[3].RejectChanges();

    // Change the value of the column so it stands out.
    itemColumns[3]["item"] = "Deleted, Undeleted, Edited";

    // Accept changes on others.
    table.AcceptChanges();

    // Print the remaining row values.
    foreach(DataRow row in table.Rows)
    {
        Console.WriteLine(row[0] + "\table" + row[1]);
    }
}
 Private Sub DemonstrateDeleteRow()
     ' Create a simple DataTable with two columns and ten rows.
     Dim table As New DataTable("table")
     Dim idColumn As New DataColumn("id", Type.GetType("System.Int32"))
     idColumn.AutoIncrement = True
     Dim itemColumn As New DataColumn("item", Type.GetType("System.String"))
     table.Columns.Add(idColumn)
     table.Columns.Add(itemColumn)

     ' Add ten rows.
     Dim newRow As DataRow
     
     Dim i As Integer
     For i = 0 To 9
         newRow = table.NewRow()
         newRow("item") = "Item " & i.ToString()
         table.Rows.Add(newRow)
     Next i
     table.AcceptChanges()

     Dim itemColumns As DataRowCollection = table.Rows
     itemColumns(0).Delete()
     itemColumns(2).Delete()
     itemColumns(3).Delete()
     itemColumns(5).Delete()
     Console.WriteLine(itemColumns(3).RowState.ToString())

     ' Reject changes on one deletion.
     itemColumns(3).RejectChanges()

     ' Change the value of the column so it stands out.
     itemColumns(3)("item") = "Deleted, Undeleted, Edited"

     ' Accept changes on others.
     table.AcceptChanges()

     ' Print the remaining row values.
     Dim row As DataRow
     For Each row In  table.Rows
         Console.WriteLine(row(0).ToString() & ControlChars.Tab _
            & row(1).ToString())
     Next row
End Sub

注釈

行の RowState が追加されると、RowStateDetached になり、AcceptChangesを呼び出したときにその行がテーブルから削除されます。If the RowState of the row is Added, the RowState becomes Detached and the row is removed from the table when you call AcceptChanges.

既存の DataRowDelete メソッドを使用すると、RowStateDeleted になります。The RowState becomes Deleted after you use the Delete method on an existing DataRow. AcceptChangesを呼び出すまでは、Deleted のままです。It remains Deleted until you call AcceptChanges. 現時点では、DataRow はテーブルから削除されています。At this time, the DataRow is removed from the table.

DataRowCollection オブジェクトの反復処理中は、foreach ループで Delete を呼び出すことはできません。Delete should not be called in a foreach loop while iterating through a DataRowCollection object. Delete は、コレクションの状態を変更します。Delete modifies the state of the collection.

削除された行は RejectChangesを呼び出すことによって削除を取り消すことができます。A deleted row can be undeleted by invoking RejectChanges.

注意

BeginEdit メソッドは、RowChanging イベントを一時的に中断しますが、削除操作は一時停止しません。The BeginEdit method temporarily suspends RowChanging events, but the delete operation does not.

適用対象

こちらもご覧ください