12 Stimmen

ADO.NET DataView erstellen, das nur ausgewählte Spalten anzeigt

Kann man in C# & .NET eine DataView die nur eine richtig Teilmenge der DataColumn s einer bestimmten DataTable ?

Im Sinne der relationalen Algebra ordnet man einem RowFilter um eine "Auswahl"-Operation (σ) durchzuführen. Wie würde man eine "Projektions"-Operation (π) durchführen?

20voto

Thomas Levesque Punkte 277723

Das ist nicht möglich, aber Sie können eine Kopie der Tabelle erstellen, die nur die gewünschten Spalten enthält:

DataView view = new DataView(table);
DataTable table2 = view.ToTable(false, "FirstColumn", "SecondColumn", "ThirdColumn");

Optional können Sie auch Zeilen zurückgeben, die eindeutige Werte für die ausgewählten Spalten haben:

DataView view = new DataView(table);
DataTable table2 = view.ToTable(true, "FirstColumn", "SecondColumn", "ThirdColumn");

1voto

Charles Bretana Punkte 137391

Nun, ich kann keinen Grund erkennen, warum ich das tun "wollte"... Denken Sie daran, dass ein DataView nur eine Liste von Zeigern auf die Zeilen in der Originaltabelle ist, und es gibt offensichtlich keine Möglichkeit, Spalten aus der Originaltabelle zu entfernen... zumindest nicht, ohne jede andere Funktion zu beeinflussen, die diese Tabelle verwendet... Verwenden Sie einfach nur die Spalten, die Sie wollen...

0voto

aamir Punkte 1

Dataview als Swap von einer Tabelle in eine andere Tabelle erstellen und den dtswap als Datenquelle verwenden.

DataView dw = new DataView(dtfee);
            DataTable dtswap = new DataTable();
            dtswap = dw.ToTable(true,"Fees", "FeeAmount", "Year", "CollectorName", "Month");

-1voto

John Saunders Punkte 159011

DataSet und seine zugehörigen Typen können keine relationalen Operationen durchführen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X