DataRow.Delete Method ()

 

Deletes the DataRow.

Namespace:   System.Data
Assembly:  System.Data (in System.Data.dll)

public void Delete()

Exception Condition
DeletedRowInaccessibleException

The DataRow has already been deleted.

If the RowState of the row is Added, the RowState becomes Detached and the row is removed from the table when you call AcceptChanges.

The RowState becomes Deleted after you use the Delete method on an existing DataRow. It remains Deleted until you call AcceptChanges. At this time, the DataRow is removed from the table.

Delete should not be called in a foreach loop while iterating through a DataRowCollection object. Delete modifies the state of the collection.

A deleted row can be undeleted by invoking RejectChanges.

System_CAPS_noteNote

The BeginEdit method temporarily suspends RowChanging events, but the delete operation does not.

The following example creates a simple DataTable with two columns and ten rows. 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]);
    }
}

.NET Framework
Available since 1.1
Return to top
Show: