2011-11-23 19 views
4

我試圖檢索數據,通過使用下面的代碼構成的數據集:LINQ在一個數據集的錯誤

var all_pepole = from rows_of_bank in ds1.Tables[0].Rows select rows_of_bank; 
    foreach (System.Data.DataRow row in all_pepole) 
    { 
     Console.WriteLine("{0} {1} is {2} years old.", row[0].ToString(), row[1].ToString(), row[2].ToString()); 
    } 

但這個代碼將產生錯誤,對我來說,這是錯誤:

找不到源類型爲「System.Data.DataRowCollection」的查詢模式的實現。 '選擇'未找到。考慮顯式指定的範圍內的變量的類型「rows_of_bank」

+0

看一看http://stackoverflow.com/questions/ 10855/LINQ查詢-ON-A-數據表 –

回答

9

ds1.Tables[0].RowsDataRowCollection類型,它實現IEnumerable但不IEnumerable<DataRow>的。大多數Linq操作員只能在通用接口上工作。你可以投的項目DataRow這樣的:

var all_pepole = from rows_of_bank in ds1.Tables[0].Rows.Cast<DataRow>() select rows_of_bank; 

或者你可以使用AsEnumerable擴展方法從LINQ到數據集:

var all_pepole = from rows_of_bank in ds1.Tables[0].AsEnumerable() select rows_of_bank;