我正在尝试使用以下代码从数据集中检索数据:
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 :(得分:9)
ds1.Tables[0].Rows
的类型为DataRowCollection
,它实现IEnumerable
但不实现IEnumerable<DataRow>
。大多数Linq运算符仅适用于通用接口。您可以将项目转换为DataRow
,如下所示:
var all_pepole = from rows_of_bank in ds1.Tables[0].Rows.Cast<DataRow>() select rows_of_bank;
或者您可以使用从Linq到DataSet的AsEnumerable
扩展方法:
var all_pepole = from rows_of_bank in ds1.Tables[0].AsEnumerable() select rows_of_bank;