我想運行一個linq查詢,但我需要結果作爲datatable,因爲我用它來存儲來自不同查詢的記錄在同一個viewstate對象中。使用DataContext從LINQ查詢填充DataTable最快的方法
以下兩個版本編譯,但返回一個空集。確切的錯誤是「值不能爲空 參數名稱:源」。 (是的,我已經檢查有數據):
MyDatabaseDataContext db = new MyDatabaseDataContext(conn);
IEnumerable<DataRow> queryProjects =
(from DataRow p in db.STREAM_PROJECTs.AsEnumerable()
where p.Field<int>("STREAM_ID") == StreamID
select new
{
PROJECT_ID = p.Field<int>("PROJECT_ID"),
PROJECT_NAME = p.Field<string>("PROJECT_NAME")
}) as IEnumerable<DataRow>;
DataTable results = queryProjects.CopyToDataTable<DataRow>();
...
//(from p in db.STREAM_PROJECTs.AsEnumerable()
//where p.STREAM_ID == StreamID
//select new
//{
// p.PROJECT_NAME,
// p.PROJECT_ID
//}) as IEnumerable<DataRow>;
在此thread的例子似乎並沒有在這種情況下,以工作,要麼。
我想我可以運行一個SQL查詢命令的老式的方式,但不是linq應該更快?
我看 - 所以它只是隱藏InvalidCastException的?那麼我如何才能將它放入數據表? – JumpingJezza 2011-02-10 04:23:42