Ordinamento e applicazione di filtri ai dati mediante un DataView
In un DataView sono disponibili numerose funzionalità per l'ordinamento e l'applicazione di filtri a una DataTable:
La proprietà Sort consente di specificare criteri di ordinamento basati su una o più colonne e di includere i parametri ASC (ascendente) e DESC (discendente).
La proprietà ApplyDefaultSort consente di creare automaticamente un criterio di ordinamento, ascendente, basato sulla colonna o sulle colonne di chiave primaria della tabella. È possibile applicare ApplyDefaultSort solo se la proprietà Sort è un riferimento null o una stringa vuota e quando nella tabella è stata definita una chiave primaria.
La proprietà RowFilter consente di specificare sottoinsiemi di righe sulla base dei relativi valori di colonna. Per informazioni dettagliate sulle espressioni valide per la proprietà RowFilter, vedere le informazioni di riferimento per la proprietà Expression della classe DataColumn.
Per restituire i risultati di una particolare query sui dati, anziché fornire una visualizzazione dinamica di un sottoinsieme di dati, per ottenere prestazioni ottimali si consiglia di utilizzare i metodi Find o FindRows del DataView, anziché impostare la proprietà RowFilter. L'impostazione della proprietà RowFilter provoca una nuova creazione dell'indice dei dati, aggiungendo overhead all'applicazione e riducendo le prestazioni. L'utilizzo della proprietà RowFilter è consigliato in applicazioni con associazioni a dati, in cui i risultati filtrati vengono visualizzati da un controllo associato. I metodi Find e FindRows si avvalgono dell'indice corrente, senza che sia necessario crearlo di nuovo. Per ulteriori informazioni sui metodi Find e FindRows, vedere Ricerche in un DataView.
La proprietà RowStateFilter consente di specificare le versioni di riga da visualizzare. Le versioni di riga da esporre vengono gestite implicitamente dal DataView sulla base del RowState della riga sottostante. Se ad esempio RowStateFilter è impostato su DataViewRowState.Deleted, il DataView consentirà l'esposizione della versione di riga Original di tutte le righe Deleted, poiché non è disponibile alcuna versione di riga Current. La proprietà RowVersion di DataRowView consente di determinare la versione di riga di una riga esposta.
Nella tabella seguente vengono mostrate le opzioni disponibili per DataViewRowState.
DataViewRowState Descrizione CurrentRows La versione di riga Current di tutte le righe Unchanged, Added e Modified. Si tratta dell'impostazione predefinita. Added La versione di riga Current di tutte le righe Added. Deleted La versione di riga Original di tutte le righe Deleted. ModifiedCurrent La versione di riga Current di tutte le righe Modified. ModifiedOriginal La versione di riga Original di tutte le righe Modified. None Nessuna riga. OriginalRows La versione di riga Original di tutte le righe Unchanged, Modified e Deleted. Unchanged La versione di riga Current di tutte le righe Unchanged.
Per ulteriori informazioni sugli stati delle righe e le versioni delle righe, vedere Stati delle righe e versioni delle righe.
L'esempio di codice seguente consente di creare una visualizzazione in cui vengono mostrati tutti i prodotti le cui unità disponibili in magazzino sono inferiori o uguali a livello di riordinazione. I prodotti vengono ordinati prima in base all'ID del fornitore, quindi in base al nome del prodotto.
Dim prodView As DataView = New DataView(prodDS.Tables("Products"), _
"UnitsInStock <= ReorderLevel", _
"SupplierID, ProductName", _
DataViewRowState.CurrentRows)
[C#]
DataView prodView = new DataView(prodDS.Tables["Products"],
"UnitsInStock <= ReorderLevel",
"SupplierID, ProductName",
DataViewRowState.CurrentRows);
Vedere anche
Creazione e utilizzo di DataView | Enumerazione DataViewRowState | Proprietà DataColumn.Expression | Classe DataTable | Classe DataView