DataRow.Delete 方法

定義

刪除 DataRowDeletes the DataRow.

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

例外狀況

DataRow 已經刪除。The DataRow has already been deleted.

範例

下列範例會建立具有兩個數據行和10個數據列的簡單 DataTableThe following example creates a simple DataTable with two columns and ten rows. 使用 Delete 方法刪除數個 DataRow 專案之後,叫用 RejectChanges就會取消刪除其中一個資料列。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

備註

如果加入資料列的 RowStateRowState 就會變成 Detached 而且當您呼叫 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.

在現有的 DataRow上使用 Delete 方法之後,RowState 就會變成 DeletedThe RowState becomes Deleted after you use the Delete method on an existing DataRow. 在您呼叫 AcceptChanges之前,它會保持 DeletedIt remains Deleted until you call AcceptChanges. 此時,DataRow 會從資料表中移除。At this time, the DataRow is removed from the table.

反覆運算 DataRowCollection 物件時,不應該在 foreach 迴圈中呼叫 DeleteDelete 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.

適用於

另請參閱