다음을 통해 공유


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 추가 RowState 된 경우 는 가 되고 Detached 를 호출 AcceptChanges할 때 테이블에서 행이 제거됩니다.

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

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

를 호출 RejectChanges하여 삭제된 행을 삭제 취소할 수 있습니다.

참고

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

적용 대상

추가 정보