Невозможно привести объект типа «System.Data.EnumerableRowCollection`1 [System.Int32]» к типу «System.IConvertible». - PullRequest
0 голосов
/ 28 июня 2018

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

int dqty=  Convert.ToInt32(from row in result.AsEnumerable()
where row.Field<string>("batch_num") == k_batch.ToString() 
select row.Field<int>("qty"));

В основном я хочу получить значение "qty".

1 Ответ

0 голосов
/ 28 июня 2018

Не обращая внимания на другие проблемы, вы не можете преобразовать список / коллекцию в целое число

Вам нужно будет использовать FirstOrDefault или аналогичный

Метод Enumerable.FirstOrDefault (IEnumerable)

Возвращает первый элемент последовательности или значение по умолчанию, если последовательность не содержит элементов.

Пример

 int dqty = (from row in result.AsEnumerable()
              where row.Field<string>("batch_num") == k_batch.ToString() 
              select row.Field<int>("qty")).FirstOrDefault();

Обновление

Далее пример

var list = new List<int>()  {23, 345, 546, 345};

var result = (
    from row in list
    where row > 23
    select row).FirstOrDefault();

Console.WriteLine(result);

выход

345

Полная демонстрация здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...