Frage

In C # & .NET kann man eine DataView erstellen, die nur eine richtiger Teilmenge des DataColumns 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 (π)?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top