Laden...

LinQ to DataSet, Ergebnisausgabe casten

Erstellt von oehrle vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.314 Views
O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 13 Jahren
LinQ to DataSet, Ergebnisausgabe casten

verwendetes Datenbanksystem: <SQLEXPRESS2008>

Hallo, ich tu mir etwas schwer mit LinQ. Ich habe vor längerer Zeit schon etwas damit gearbeitet, habs dann aber wieder ruhen lassen. Ich arbeite de öfteren mit Datenbanken, und verwende dazu das ADO.Net, eigentlich fast immer in VErbindung mit einem DataSet.
Jetzt hatte ich gesehen, das man damit auch schon was in nicht typisierten dataSets (Tabellen) abfragen kann, und habe das natürlich auch sofotz probiert. Hier meine PRoblemfall:



 DataTable tbl = _MVDataSet.Tables["PSSMaschinenliste"];  // aus DataSet die Tabelle zuweisen
            var suche = from p in tbl.AsEnumerable()
                        select new {name = p.Field<String>("Bezeichnung"), abluft = p.Field<Double>("Abluft")};


            dgv_Hinweise.DataSource = suche;  //.CopyToDataTable() gibts hiier nicht, .AsEnumerable() auch nicht. 

Warum kann ich das suche-Ergebnis nicht dem DataGridView zuzordnen? Wenn ich n ur
select p;
angebe, dann funkionierts und ich kann mit .CopyToDataTable() arbeiten. Ich möchte aber nicht alle Spalten der Tabelle anzeigen, sondern nur ein paar ausgewählte.
Wie muss ich da vor gehen?

16.825 Beiträge seit 2008
vor 13 Jahren

Hi,

diese var-Konstellation kannst Du meines Wissens nicht einfach einer Source zuweisen ( vielleicht weiß es ja jemand besser ).
Ich geh stark davon aus, dass Du Dein Linq-Ergebnis in eine BindingSource setzen musst und dieses dann dem DataGridView zuweisen kannst.

F
10.010 Beiträge seit 2004
vor 13 Jahren

Es ist nicht das Var, sondern der anonyme Typ.

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 13 Jahren
Gelöst. Funtioniert mit BindingSource

Hi, danke. Habe es ausprobiert. Wenn ich das an eine BindingSource übergebe, diese an ein DataGridView hänge, funktionierts. Prima. Wieso das mit dem anonymen Typ genau so ist, das habe ich noch nicht begriffen.