Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Wie mit einer Linq-Abfrage alle Datensätze mit einer bestimmten Spalte ausgeben lassen?
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 389
Herkunft: Germany

Themenstarter:

Wie mit einer Linq-Abfrage alle Datensätze mit einer bestimmten Spalte ausgeben lassen?

beantworten | zitieren | melden

Hallo, ich möchte aus einer SQL-Tabelle alle Datensätze ausgeben lassen, aber nur mit der Spalte "Bestellname".

Wie mache ich das, habe da schon rumprobert, krieg es aber nicht hin, weil man noch umwandeln muss (Compilerfehler CS0029).



DataRow[] rowsExcel = tblExcelDaten.AsEnumerable().Where(x => x["Info"].ToString() == "Keine Bestellnummer").CopyToDataTable().AsEnumerable().Select(x => x.Field<string>("Bestellname")).Distinct().ToArray();

Wie mache ich das richtig?
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 3977

beantworten | zitieren | melden

Du hast zwei unterschiedliche Datentypen.
Mit ToArray() erzeugst du ein, bezogen auf die Linq-Abfrage, erzeugtes Array (bei dir also string[]), während du es einem DataRow[] zuweisen möchtest.

Benötigst du überhaupt für die weitere Abarbeitung speziell ein DataRow-Array? Ansonsten nimm doch einfach


var rowsExcel = tblExcelDaten. ... .Distinct(); // auch auf das ToArray() würde ich verzichten

PS: Ist das CopyToDataTable().AsEnumerable() innerhalb deiner Linq-Abfrage nicht überflüssig?
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 389
Herkunft: Germany

Themenstarter:

beantworten | zitieren | melden

Hallo Th69, wennich das ganze sofort als DataTable hätte wäre das gut, ich müßte das Ergebnis als DataTable weitergeben.
Geht das nun, das ich die Abfrage mit der Tabelle mache, und davon mit LinQ nur die eine Spalte mit Daten weitergeben

Ansosnten müßte ich halt das Ergebnis einer DataTable zuweisen.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15618
Herkunft: BW

beantworten | zitieren | melden

Zitat von oehrle
Geht das nun, das ich die Abfrage mit der Tabelle mache, und davon mit LinQ nur die eine Spalte mit Daten weitergeben

Das ist so nicht möglich.
Die DataTable stellt bereits das materlisierte Ergebnis dar; Du kannst über DataTable keine Einschränkung umsetzen, die sich auf den SQL Query selbst auswirkt.

Dein Thema nennt sich Linq To DataSet.
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 3977

beantworten | zitieren | melden

Dann mußt du einfach CopyToDataTable() als letztes benutzen:


var rowsExcel = tblExcelDaten. ... .Distinct().CopyToDataTable(); 
private Nachricht | Beiträge des Benutzers