Odstranění datového řádku

Existují dvě metody, které lze použít k odstranění objektu DataRow z objektuDataTable: Remove metoda DataRowCollection objektu a Delete metoda DataRow objektu. Remove Zatímco metoda odstraní DataRow z DataRowCollection, Delete metoda označí pouze řádek pro odstranění. Skutečné odebrání nastane, když aplikace volá AcceptChanges metoda. Pomocí kódu Deleteprogramu můžete zkontrolovat, které řádky jsou označené k odstranění, než je skutečně odeberete. Pokud je řádek označen k odstranění, RowState jeho vlastnost je nastavena na Delete.

Remove Ani Delete by se nemělo volat ve smyčce foreach při iterování objektemDataRowCollection. Delete ani Remove změnit stav kolekce.

Při použití DataSet nebo DataTable ve spojení s objektem DataAdapter a relačním zdrojem dat použijte metodu Delete DataRowk odebrání řádku. Metoda Delete označí řádek jako Odstraněný v Datové sadě nebo DataTable, ale neodebere ho. Místo toho, když DataAdapter narazí na řádek označený jako Deleted, spustí metodu DeleteCommand pro odstranění řádku ve zdroji dat. Řádek lze pak trvale odebrat pomocí metody AcceptChanges . Pokud k odstranění řádku použijete funkci Odebrat , řádek se úplně odebere z tabulky, ale objekt DataAdapter neodstraní řádek ve zdroji dat.

Metoda Remove DataRowCollection přebírá DataRow jako argument a odebere ji z kolekce, jak je znázorněno v následujícím příkladu.

workTable.Rows.Remove(workRow)  
workTable.Rows.Remove(workRow);  

Naproti tomu následující příklad ukazuje, jak volat Delete metoda na DataRow změnit jeho RowState na Deleted.

workRow.Delete  
workRow.Delete();  

Pokud je řádek označen k odstranění a voláte AcceptChanges metoda DataTable objektu, řádek je odebrán z DataTable. Naproti tomu pokud zavoláte RejectChanges, rowState řádku se vrátí k tomu, co bylo předtím, než se označí jako Odstraněno.

Poznámka:

Pokud je hodnota RowState objektu DataRow přidána, což znamená, že byla právě přidána do tabulky a je označena jako Odstraněná, bude odebrána z tabulky.

Viz také