Bindung LINQ-Abfrage zu DataGridView

Dies ist sehr verwirrend, ich benutze AsDataView zu binden Abfrage-Ergebnis eine dgv und es funktioniert gut mit den folgenden:

var query = from c in myDatabaseDataSet.Diamond where c.p_Id == p_Id select c;
dataGridView1.DataSource = query.AsDataView();

Jedoch, dieser führt zu einem Fehler:

var query = from item in myDatabaseDataSet.Items
    where item.p_Id == p_Id
    join diamond in myDatabaseDataSet.Diamond
        on item.p_Id equals diamond.p_Id
    join category in myDatabaseDataSet.DiamondCategory
        on diamond.dc_Id equals category.dc_Id
    select new
    {
        Product = item.p_Name,
        Weight = diamond.d_Weight,
        Category = category.dc_Name
    };

    dataGridView1.DataSource = query.AsDataView();

Fehler:

Instance argument: cannot convert from
'System.Collections.Generic.IEnumerable<AnonymousType#1>' to 
'System.Data.DataTable'

AsDataView nicht zeigen, bis in Abfrage.(Liste). Warum ist das geschehen? Wie binden Sie die obige Abfrage auf die dgv dann?.

Werfen Sie einen Blick auf diesen link: LINQ to DataTable Vielleicht ist hier finden Sie die Antwort: Geben Sie Fehler bei der Konvertierung mithilfe von LINQ-mit einem DataSet

InformationsquelleAutor DanSogaard | 2010-03-06

Schreibe einen Kommentar