【发布时间】:2011-01-24 11:50:45
【问题描述】:
这很令人困惑,我使用 AsDataView 将查询结果绑定到 dgv,它适用于以下内容:
var query = from c in myDatabaseDataSet.Diamond where c.p_Id == p_Id select c;
dataGridView1.DataSource = query.AsDataView();
但是,这会导致错误:
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();
错误:
Instance argument: cannot convert from
'System.Collections.Generic.IEnumerable<AnonymousType#1>' to
'System.Data.DataTable'
AsDataView 未显示在查询中。(列表)。为什么会这样?那么如何将上面的查询绑定到dgv呢?
【问题讨论】:
-
看看这个链接:LINQ to DataTable或许在这里你可以找到答案:Type conversion error using LINQ with a DataSet
标签: linq linq-to-sql data-binding datagridview linq-to-dataset