Usuwanie elementu DataRow
Istnieją dwie metody, których można użyć do usunięcia DataRow obiektu z DataTable obiektu: metody DataRowCollection Remove obiektu i Delete metody obiektu DataRow. Remove Podczas gdy metoda usuwa element DataRow z kolekcji DataRowCollection, Delete metoda oznacza tylko wiersz do usunięcia. Rzeczywiste usunięcie występuje, gdy aplikacja wywołuje metodę AcceptChanges . Za pomocą polecenia Deletemożna programowo sprawdzić, które wiersze są oznaczone do usunięcia przed ich usunięciem. Gdy wiersz jest oznaczony do usunięcia, jego RowState właściwość jest ustawiona na Deletewartość .
Ani nie Delete Remove należy wywoływać w pętli foreach podczas iterowania przez DataRowCollection obiekt. Delete ani Remove modyfikować stanu kolekcji.
W przypadku używania elementu DataSet lub DataTable w połączeniu z elementem DataAdapter i źródłem danych relacyjnych użyj metody Delete elementu DataRow, aby usunąć wiersz. Metoda Delete oznacza wiersz jako Usunięty w elemecie DataSet lub DataTable, ale nie usuwa go. Zamiast tego, gdy obiekt DataAdapter napotka wiersz oznaczony jako Usunięty, wykonuje metodę DeleteCommand , aby usunąć wiersz w źródle danych. Wiersz można następnie trwale usunąć przy użyciu metody AcceptChanges . Jeśli usuniesz wiersz za pomocą polecenia Usuń , wiersz zostanie całkowicie usunięty z tabeli, ale element DataAdapter nie usunie wiersza w źródle danych.
Metoda Remove kolekcji DataRowCollection przyjmuje element DataRow jako argument i usuwa go z kolekcji, jak pokazano w poniższym przykładzie.
workTable.Rows.Remove(workRow)
workTable.Rows.Remove(workRow);
Z kolei w poniższym przykładzie pokazano, jak wywołać metodę Delete w obiekcie DataRow , aby zmienić jej wartość RowState na Usunięto.
workRow.Delete
workRow.Delete();
Jeśli wiersz zostanie oznaczony do usunięcia i wywołasz metodę AcceptChanges obiektu DataTable, wiersz zostanie usunięty z tabeli DataTable. Natomiast jeśli wywołasz metodę RejectChanges, element RowState wiersza powróci do tego, co było wcześniej oznaczone jako Usunięte.
Uwaga
Jeśli element RowState elementu DataRow jest dodawany, co oznacza, że właśnie został dodany do tabeli, a następnie jest oznaczony jako Usunięty, zostanie usunięty z tabeli.