Crea ADO.NET DataView mostrando solo le colonne selezionate
-
05-07-2019 - |
Domanda
In C # & amp; .NET, è possibile creare un DataView
che include solo un sottoinsieme corretto dei DataColumn
di un dato DataTable
?
In termini di algebra relazionale, si assegna un RowFilter
per eseguire una "selezione" operazione (& # 963;). Come si potrebbe eseguire una "proiezione" operazione (& # 960;)?
Soluzione
Non puoi farlo, ma puoi creare una copia della tabella con solo le colonne che desideri:
DataView view = new DataView(table);
DataTable table2 = view.ToTable("FirstColumn", "SecondColumn", "ThirdColumn");
Facoltativamente, puoi restituire righe con valori distinti per le colonne selezionate:
DataView view = new DataView(table);
DataTable table2 = view.ToTable(true, "FirstColumn", "SecondColumn", "ThirdColumn");
Altri suggerimenti
Beh, non vedo alcun motivo per " volendo " per farlo ... Ricorda, un DataView è solo un elenco di puntatori alle righe nella tabella originale, e ovviamente non c'è modo di rimuovere le colonne dalla tabella originale ... almeno non influenzando ogni altra funzione che utilizza quella tabella ... Usa solo le colonne che vuoi ...
crea la visualizzazione dati come scambio da una tabella all'altra tabella e usa dtswap come origine dati.
DataView dw = new DataView(dtfee);
DataTable dtswap = new DataTable();
dtswap = dw.ToTable(true,"Fees", "FeeAmount", "Year", "CollectorName", "Month");
DataSet
e i suoi tipi associati non hanno la capacità di eseguire operazioni relazionali.