C # Linq Table запрос для подсчета несовпадающих записей - PullRequest
0 голосов
/ 01 октября 2018

Я новичок в этом, я запускаю два SQL-запроса и создаю две отдельные таблицы данных: DataTable1 и DataTable2.

Я применяю некоторые критерии linq к DataTable1 исоздав из этой таблицы еще одну таблицу данных, которая будет DataTable3.

var Query3 = from table1 in DataTable1.AsEnumerable()
             where table1.Field<DateTime>("DateTime") <= Yday
             where table1.Field<string>("StockCode").Contains("-CA") && !(table1.Field<string>("StockCode").Contains("-CAB")) ||
                   table1.Field<string>("StockCode").Contains("-CM") ||
                   table1.Field<string>("StockCode").Contains("-LP")
             select table1;      

DataTable DataTable3 = Query3.CopyToDataTable()

Теперь я напишу еще один запрос для следующего:

Обе таблицы данных имеют столбец JobNumber.Я хотел бы запросить DataTable3 в DataTable 2 для подсчета строк, имеющих похожие записи JobNumber.Ниже я делаю то, что делаю, но не могу правильно подсчитать.

int count = (from table3 in DataTable3.AsEnumerable()
             join table2 in DataTable2.AsEnumerable() on table2.Field<string>("JobNumber") equals table3.Field<string>("JobNumber")
             where table2.Field<string>("JobNumber") == table3.Field<string>("JobNumber")
             select table2).Count();

1 Ответ

0 голосов
/ 01 октября 2018

Вы создаете декартово объединение и подсчитываете его результат, это то, что вы отступили?Также в вашем linq ваше выражение Join и где выражение одно и то же (где избыточно).Непонятно, на что вы действительно хотите рассчитывать.Возможно, вы вместо этого хотели посчитать те в DataTable2, где JobNumbers существует в DataTable3?

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