Erstellen ADO.NET Dataview zeigt nur ausgewählte Spalten
-
05-07-2019 - |
Frage
In C # & .NET kann man eine DataView
erstellen, die nur eine richtiger Teilmenge des DataColumn
s eines gegebenen DataTable
enthält?
Hinsichtlich der relationalen Algebra, ordnet man eine RowFilter
, um eine „Auswahl“ -Operation (σ) durchzuführen. Wie würde man eine "Vorsprung" Operation durchführt (π)?
Lösung
Sie können das nicht tun, aber Sie können eine Kopie der Tabelle erstellen, wobei nur die Spalten, die Sie wollen:
DataView view = new DataView(table);
DataTable table2 = view.ToTable("FirstColumn", "SecondColumn", "ThirdColumn");
Optional können Sie zurückgeben Zeilen, die unterschiedlichen Werte für die ausgewählten Spalten haben:
DataView view = new DataView(table);
DataTable table2 = view.ToTable(true, "FirstColumn", "SecondColumn", "ThirdColumn");
Andere Tipps
Nun kann ich sehen keinen Grund, nicht für „wollen“, das zu tun ... Denken Sie daran, ein Dataview ist nur eine Liste von Zeigern auf die Zeilen in der ursprünglichen Tabelle, und es gibt offensichtlich keine Möglichkeit, Spalten aus der entfernen die Original-Tabelle ... zumindest nicht ohne jede andere Funktion verwendet wird, die Tabelle zu beeinflussen ... einfach nur die Spalten, verwenden Sie wollen ...
Dataview als Swap von einem Tisch zum anderen Tabelle erstellen und die dtswap als Datenquelle verwenden.
DataView dw = new DataView(dtfee);
DataTable dtswap = new DataTable();
dtswap = dw.ToTable(true,"Fees", "FeeAmount", "Year", "CollectorName", "Month");
DataSet
und die dazugehörigen Typen haben keine Möglichkeit, relationale Operationen auszuführen.