DataRow.Delete 方法

定义

删除 DataRow

public void Delete ();

例外

示例

以下示例创建包含两列和十行的简单 DataTable 。 使用 Delete 方法删除多个DataRow项后,通过调用 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]);
    }
}

注解

RowState如果行的 已添加,则在调用 AcceptChanges时,RowState将变为 Detached ,并且该行将从表中删除。

在现有 上使用 方法后Delete,变为 RowStateDeletedDataRow 它一直保留 Deleted ,直到调用 AcceptChanges。 此时, DataRow 将从表中删除 。

Delete 在循环访问 DataRowCollection 对象时,不应在 foreach 循环中调用。 Delete 修改集合的状态。

可以通过调用 RejectChanges来取消删除已删除的行。

备注

方法 BeginEdit 暂时挂起 RowChanging 事件,但删除操作不会。

适用于

产品 版本
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

另请参阅