Linq on DataTable: Wählen Sie eine bestimmte Spalte in die Datentabelle, nicht die ganze Tabelle

8

Ich führe eine LINQ-Abfrage für ein datatable in c # durch.

Ich möchte bestimmte Spalten anstelle der gesamten Zeile auswählen und das Ergebnis in ein datatable eingeben. Wie kann ich das tun?

Mein Code:

%Vor%     
Uri Klar 20.01.2013, 07:49
quelle

5 Antworten

8

Wenn Sie bereits im Voraus wissen, wie viele Spalten Ihre neue DataTable haben würde, können Sie Folgendes tun:

%Vor%     
OJ Raqueño 21.01.2013, 02:26
quelle
6

Hier bekomme ich nur drei spezifische Spalten von mainDataTable und benutze den Filter

%Vor%     
Leax 18.02.2013 16:01
quelle
5

Versuchen Sie Access DataTable einfachste Möglichkeit , die Ihnen helfen kann für die perfekte Idee für den Zugriff auf DataTable, DataSet mit Linq ...

Betrachten Sie folgendes Beispiel: Angenommen, wir haben DataTable wie unten.

%Vor%

Hier ist der Code für DatTable, hier nehmen wir an, dass einige Daten in dieser DataTable verfügbar sind, und wir müssen die Grid-Ansicht bestimmter Daten durch Verarbeitung einiger Daten, wie unten gezeigt, binden.

  

Bereich | Menge | Atem | Länge | Preis = Menge * Atem * Länge

Dann müssen wir die folgende Abfrage auslösen, die uns genau das Ergebnis liefert, das wir wollen.

%Vor%

Wir müssen diese Datenvariable nur als Datenquelle zuweisen.

Mit dieser einfachen Linq-Abfrage können wir alle unsere akzeptieren, und wir können auch alle anderen LINQ-Abfragen mit diesem ausführen ...

    
Sagar Upadhyay 07.04.2013 13:54
quelle
5

LINQ ist sehr effektiv und einfach in Listen anstelle von DataTable zu verwenden. Ich kann sehen, dass die obigen Antworten eine Schleife (für, foreach) haben, die ich nicht bevorzugen werde.

Daher ist es am besten, wenn Sie eine passende Spalte aus einer DataTable auswählen. Verwenden Sie einfach eine DataView, um die Spalte zu filtern und nach Bedarf zu verwenden.

Finden Sie hier, wie Sie dies tun.

%Vor%

Jetzt enthält die DataTable dtTableWithOneColumn nur eine Spalte (ColumnA).

    
Tapan kumar 20.01.2014 07:04
quelle
3

Ihre SELECT-Anweisung gibt eine Sequenz vom anonymen Typ und nicht eine Sequenz von DataRows zurück. CopyToDataTable () ist nur für IEnumerable<T> verfügbar, wobei T für DataRow steht oder von diesem abgeleitet wird. Sie können r das Zeilenobjekt auswählen, um CopyToDataTable darauf aufzurufen.

%Vor%

Sie können auch CopyToDataTable implementieren , wenn der generische Typ T keine DataRow ist.

    
Adil 20.01.2013 08:03
quelle

Tags und Links