Condividi tramite


Eliminazione di DataRow

Esistono due metodi che è possibile utilizzare per eliminare un DataRow oggetto da un DataTable oggetto: il Remove metodo dell'oggetto DataRowCollection e il Delete metodo dell'oggetto DataRow . Mentre il Remove metodo elimina un oggetto DataRow da DataRowCollection, il Delete metodo contrassegna solo la riga per l'eliminazione. La rimozione effettiva si verifica quando l'applicazione chiama il AcceptChanges metodo . Usando Delete, è possibile controllare a livello di codice le righe contrassegnate per l'eliminazione prima di rimuoverle effettivamente. Quando una riga è contrassegnata per l'eliminazione, la relativa RowState proprietà viene impostata su Delete.

DeleteRemove devono essere chiamati durante l'iterazione di un oggetto DataRowCollection in un ciclo foreach. DeleteRemove modificare lo stato della raccolta.

Quando si utilizza un DataSet o DataTable in combinazione con un DataAdapter oggetto e una sorgente dati relazionale, utilizzare il metodo Delete di DataRow per rimuovere la riga. Il Delete metodo contrassegna la riga come Deleted in DataSet o DataTable ma non la rimuove. Al contrario, quando rileva DataAdapter una riga contrassegnata come Eliminata, esegue il relativo DeleteCommand metodo per eliminare la riga nell'origine dati. La riga può quindi essere rimossa definitivamente usando il AcceptChanges metodo . Se si utilizza Remove per eliminare la riga, la riga viene rimossa interamente dalla tabella, ma DataAdapter non eliminerà la riga nell'origine dati.

Il metodo Remove di DataRowCollection prende un DataRow come argomento e lo rimuove dalla raccolta, come mostrato nell'esempio seguente.

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

L'esempio seguente illustra invece come chiamare il Delete metodo su un DataRow per cambiare il suo RowState in Deleted.

workRow.Delete
workRow.Delete();

Se una riga è contrassegnata per l'eliminazione e si chiama il AcceptChanges metodo dell'oggetto DataTable , la riga viene rimossa da DataTable. Al contrario, se si chiama RejectChanges, l'oggetto RowState della riga torna a quello che era prima di essere contrassegnato come Eliminato.

Annotazioni

Se il RowState di un DataRow è aggiunto, ovvero è stato appena aggiunto alla tabella, e viene segnato come Eliminato, viene rimosso dalla tabella.

Vedere anche