DataRow.Delete 메서드

정의

를 삭제합니다 DataRow.

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

예외

DataRow 이미 삭제되었습니다.

예제

다음 예제에서는 두 개의 열과 10개의 행이 있는 단순 DataTable 행을 만듭니다. 메서드를 사용하여 여러 DataRow 항목을 Delete 삭제한 후 행 중 하나가 호출 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 값이 AddedRowState 있으면 행이 테이블에서 Detached 즉시 제거됩니다.

RowState 메서드는 Deleted 기존 메서드를 Delete 사용한 후에 발생합니다 DataRow. 호출AcceptChanges할 때까지 유지합니다Deleted. 이때 DataRow 테이블에서 제거됩니다.

Delete 는 개체를 반복하는 DataRowCollection 동안 foreach 루프에서 호출되지 않아야 합니다. Delete 컬렉션의 상태를 수정합니다.

삭제된 행은 호출하여 삭제되지 않을 수 있습니다 RejectChanges.

메모

이 메서드는 BeginEdit 이벤트를 일시적으로 일시 중단하지만 삭제 작업은 일시 중단 RowChanging 하지 않습니다.

적용 대상

추가 정보