【发布时间】:2015-02-20 00:10:15
【问题描述】:
我正在尝试从MSDN 的代码示例中学习,但我显然不了解 LINQ 的真正工作原理。我想做的是用强类型数据集的表中可用列的子集填充“查找窗口”的 DataGridView。我正在尝试以下操作:
IEnumerable<DataRow> query =
(from t in DataAccess.ds.GL40200.AsEnumerable()
where t.SGMTNUMB == 3
select new { t.SGMNTID, t.DSCRIPTN });
DataTable myTable = query.CopyToDataTable<DataRow>();
dgv_Exhibitors.DataSource = myTable;
但是,这抱怨从 EnumerableRowCollection<AnonymousType#1> 到 IEnumerable<System.Data.DataRow> 的隐式转换错误。
我尝试添加以下内容,但会导致运行时错误:
select new { t.SGMNTID, t.DSCRIPTN }).Cast<DataRow>();
虽然只选择“t”有效,但表格包含我不想向用户显示的列:
where t.SGMTNUMB == 3
select t;
您能否提供一种简单的方法来仅使用所需的两个列填充 DataGridView?如果有比使用 LINQ 更好或更简单的方法,我愿意接受建议。
【问题讨论】:
标签: c# linq datagridview strongly-typed-dataset