2013-11-18 4 views
2

У меня возникла проблема с получением результатов, которые я ищу. Что мне нужно сделать, это по существу:select count on list using linq по определенному значению vb.net

Select count(invoicenbr) from invoicelist where invoicenbr = 'invoice' 

но когда я попробую это в linq, я не получаю правильные результаты.

При попытке выполнить команду запроса LINQ ниже, это дает мне счетчик для всего списка, а не для where invoicenbr = 'invoice' ...

Вот мой запрос LINQ, который возвращает счетчик для всей invoiceList :

Dim test = (From invoices In invoicelist _ 
Where e.Row.Cells("invoicenbr").Value = invoice).count() 
+0

Удалить Графа бит(). – varocarbas

+0

Это * действительно * должно работать как сейчас. Если вы удалите 'Count()' и посмотрите на результаты, что вы видите в 'e.Row.Cells (« invoicenbr »). Value'? –

+0

Что такое 'invoicelist' и' e.Row'? –

ответ

3

У вас есть проблема с именами в вашем коде, я предполагаю, что он несет ответственность за вашу проблему.

Переменная в вашем запросе invoices, но позже вы используете invoice, чтобы сравнить ее с значением ячейки, поэтому у вас есть другая переменная в области с именем invoice.

Это должно работать:

Dim invoicenbr As String = e.Row.Cells("invoicenbr").Value 
Dim duplicates = From invoice In invoicelist 
        Where invoice = invoicenbr 
Dim duplicateCount As Int32 = duplicates.Count() 
+0

Спасибо @Tim, это дает мне счет для конкретного счета, который я ищу. Сейчас у меня проблема с появлением ячейки на ультрарадикальной ультрарадикации, не меняющей цветов, но я это выясню. Благодарю. –

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