Dela via


DataRow-borttagning

Det finns två metoder som du kan använda för att ta bort ett DataRow objekt från ett DataTable objekt: metoden DataRowCollection Ta bort objektet och Delete metoden för DataRow-objektet. Remove Medan metoden tar bort en DataRow från DataRowCollection markerar Delete metoden endast raden för borttagning. Den faktiska borttagningen sker när programmet anropar metoden AcceptChanges . Med hjälp Deleteav kan du programmatiskt kontrollera vilka rader som har markerats för borttagning innan de tas bort. När en rad har markerats för borttagning är dess RowState egenskap inställd på Delete.

Varken Delete eller Remove ska anropas i en foreach-loop när du itererar genom ett DataRowCollection objekt. Delete eller Remove ändra samlingens tillstånd.

När du använder en DataSet eller DataTable tillsammans med en DataAdapter och en relationsdatakälla använder du metoden Ta bort för DataRow för att ta bort raden. Metoden Ta bort markerar raden som Borttagen i DataSet eller DataTable men tar inte bort den. När DataAdapter i stället stöter på en rad markerad som Borttagen kör den sin DeleteCommand-metod för att ta bort raden i datakällan. Raden kan sedan tas bort permanent med metoden AcceptChanges . Om du använder Ta bort för att ta bort raden tas raden bort helt från tabellen, men DataAdapter tar inte bort raden i datakällan.

Metoden Remove för DataRowCollection tar en DataRow som ett argument och tar bort den från samlingen, som du ser i följande exempel.

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

I följande exempel visas däremot hur du anropar metoden Ta bort på en DataRow för att ändra rowstate till Borttagen.

workRow.Delete  
workRow.Delete();  

Om en rad har markerats för borttagning och du anropar metoden AcceptChanges för DataTable-objektet tas raden bort från DataTable. Om du däremot anropar RejectChanges återgår raden RowState till vad den var innan den markeras som Borttagen.

Kommentar

Om RowState för en DataRow har lagts till, vilket innebär att den just har lagts till i tabellen och sedan har markerats som Borttagen, tas den bort från tabellen.

Se även