2011-11-11 4 views
0

Я пытаюсь выбрать значение столбца из datatable на основе условий.Datatable linq select query

var results = from DataRow myRow in dtCallBack.AsEnumerable() 
       where myRow.Field<DateTime>(1) == startDateTime 
       && myRow.Field<int>(0) == callBackID 
       select myRow.Field<int>(3); 

Моя DataTable содержит 4 столбца ID, Дата1, date2, IntVal

Я хочу, чтобы преобразовать переменные результаты в целое. (Я хочу вернуть колонку 4 IntVal)

ответ

1
var results = (from DataRow myRow in dtCallBack.AsEnumerable 
       where myRow.Field<DateTime>(1) == startDateTime 
       && myRow.Field<int>(0) == callBackID 
       select myRow.Field<int>(3)).SingleOrDefault(); 
+0

'AsEnumerable' ->' AsEnumerable() ' – sll

+0

Моя ошибка AsEnumerable() есть в коде – Premanshu

+0

Это сработало .... Большое спасибо Thanh – Premanshu

1

Ну, у вас в настоящее время есть IEnumerable<int> по внешнему виду. Итак, какой из результатов вы хотите? Что вы хотите сделать, если нет Есть ли результаты?

Если вы уверены, что есть только один результат, вы можете использовать:

var result = results.Single(); 

Если вы хотите, первый результат или 0, если нет какой-либо, вы можете использовать

var result = results.FirstOrDefault(); 

Если вы хотите, первый результат и исключение, если их нет, то вы могли бы использовать

var result = results.First(); 

в принципе есть много вариантов, и вам нужно будет уточнить свои требования, прежде чем мы сможем дать вам более конкретный ответ.

+0

firstOrDefault будет служить моей целиFirstOrDefault. Если результаты не возвращаются 0. startDateTime и callBackID - это параметры для проверки. – Premanshu

+0

Большое спасибо, Джон. Добавление SingleOrDefault заставило его работать ... – Premanshu

+0

@Premanshu: В отличие от принятого ответа, I * не будет * вызывать переменную 'results' в конце, тогда, учитывая, что у вас есть только один результат. Я бы лично, возможно, выделил его в запросе, а затем код «SingleOrDefault» для ясности. Обычно мне не нравятся вызовы методов метода в конце выражений запроса. –

Смежные вопросы