Condividi tramite


Eliminazione di DataRow

Esistono due metodi che è possibile utilizzare per eliminare un DataRow oggetto da un DataTable oggetto: il metodo Remove 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 metodo AcceptChanges . 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 usa un DataSetDataTable in combinazione con un DataAdapter e un'origine dati relazionale, utilizzare il metodo Delete del DataRow per rimuovere la riga. Il metodo Deletecontrassegna la riga come Deleted in DataSet o DataTable , ma non la rimuove. Al contrario, quando DataAdapter rileva una riga contrassegnata come Deleted, esegue il relativo metodo DeleteCommand per eliminare la riga nell'origine dati. La riga può quindi essere rimossa definitivamente usando il metodo AcceptChanges . 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 accetta un oggetto DataRow come argomento e lo rimuove dalla raccolta, come illustrato nell'esempio seguente.

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

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

workRow.Delete  
workRow.Delete();  

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

Annotazioni

Se l'elemento RowState di un dataRow viene aggiunto, ovvero è stato appena aggiunto alla tabella e viene quindi contrassegnato come Eliminato, viene rimosso dalla tabella.

Vedere anche