繁体   English   中英

LINQ to DataTable查询帮助

[英]Help with LINQ to DataTable query

我已经成功地使用OLEDB将excel文件导入数据表并在数据网格视图中显示了它。 现在,我想使用LINQ并将网格的数据源设置为LINQ查询,但是它不起作用。 这是完整的代码:

OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Nick\Desktop\Pricing2.xlsx" + @";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1;ImportMixedTypes=Text;TypeGuessRows=0""";

OleDbCommand command = new OleDbCommand
(
    "SELECT * FROM [Pricing$]",conn
);
DataTable dt = new DataTable();
OleDbDataAdapter adapter = new OleDbDataAdapter(command);
adapter.Fill(dt);
var query = from a in dt.AsEnumerable()
            select a;
dataGridView1.DataSource = query; 

数据绑定适用于IList ,而不适用于IEnumerable

为了绑定到LINQ查询,您需要调用ToList()
要绑定到LINQ-to-DataTable查询(返回DataRow的LINQ查询),则需要调用AsDataView()
这将返回一个ITypedList实现,该实现将显示表中各列的属性。

如果选择匿名类型(而不是DataRow ), ToList()需要ToList()

.ToList()将不起作用, .CopyToDataTable()是正确的调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM