LINQ по ошибке набора данных - PullRequest
4 голосов
/ 23 ноября 2011

Я пытаюсь получить данные из набора данных, используя следующий код:

    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».«Выбрать» не найдено.Рассмотрим явное указание типа переменной диапазона 'columns_of_bank'

1 Ответ

9 голосов
/ 23 ноября 2011

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;

Или использовать метод расширения AsEnumerable от Linq до DataSets:

var all_pepole = from rows_of_bank in ds1.Tables[0].AsEnumerable() select rows_of_bank;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...