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;)?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top