Сравните два набора данных в двух разных таблицах данных, используя vb.net

Скажите, пожалуйста, как сравнить две таблицы данных в двух разных наборах данных. У меня есть одна таблица данных с 5 столбцами в одном наборе данных и другая таблица данных с 2 столбцами в другом наборе данных. Столбец 1 в обеих таблицах данных должен быть одинаковым. Мне нужно сравнить 1-й столбец в обеих таблицах данных в разных наборах данных. Если обе строки одинаковы, в третьем столбце в таблице данных 2 должен быть установлен флаг «да» или «нет». А также он должен объединить другие столбцы, скажем, 2,3,4 и 5 из таблицы данных 1 в наборе данных1 в таблицу данных 2 в набор данных2.

Обе таблицы данных я импортирую значения из книги Excel, которые имеют несколько рабочих листов. Таким образом, один рабочий лист для одного datatable. Точно так же есть две рабочие тетради.

1-й datatable в 1-м наборе данных будет похож на

A B C D E

1 2 3 4 5

2 3 4 5 6

3 4 5 6 7

2-й datatable во 2-м наборе данных будет похож

A F

1 2

2 3

3 4

Выходные данные 2 во втором наборе данных должны быть похожими

A B C D E F G

1 2 3 4 5 2 ДА

2 3 4 5 6 3 ДА

3 4 5 6 7 4 ДА

Пожалуйста, предложите мне, как действовать, я пытаюсь изучить vb.net

Заранее спасибо

Джитин


person user1694783    schedule 27.09.2012    source источник
comment
Можете ли вы подробнее объяснить столбцы в таблице результатов и логику?   -  person Tim Schmelter    schedule 27.09.2012


Ответы (1)


Вы могли

  • определить первичный ключ в обеих таблицах данных
  • создать новую таблицу данных со всеми столбцами
  • перебрать все строки в DataTable 1 и использовать pk для поиска «соответствующей» строки в DataTable 2
  • вставить строку в новую таблицу данных для каждого результата

Затем вам понадобится дополнительная логика, чтобы найти все те строки, которые присутствуют только в DataTable 1 или 2, если вы также хотите, чтобы эти строки были в новой DataTable.

Рассматривали ли вы возможность изменить способ заполнения обеих таблиц данных? Если это результат двух запросов, возможно, вы могли бы использовать оператор соединения в своем SQL?

person Laoujin    schedule 27.09.2012
comment
Я новичок в кодировании VB.net. Не могли бы вы подсказать мне, как создать первичный ключ через vb.net? - person user1694783; 27.09.2012
comment
Обратите внимание, что define a primary key является ссылкой. Не хочу показаться снисходительным, но что вы пробовали? - person Laoujin; 27.09.2012
comment
После определения первичного ключа, как мы можем выполнить часть строки подключения? Потому что я просто знаю, как передать одну строку подключения, такую ​​​​как dim dt1, как новый oledb.oledbdataadaptor (выберите * из [Sheet1 $], myconnection), здесь myconnection будет для первый набор данных правильно? как я могу выполнить функцию обновления с обеими таблицами данных? - person user1694783; 27.09.2012
comment
Вам нужно изучить инструкцию JOIN SQL. (при условии, что вы получаете данные из реляционной базы данных). Это будет выглядеть так: SELECT sh1.FIELD, sh2.FIELD2 FROM [Sheet1$] sh1 JOIN [Sheet2$] sh2 ON sh1.PK=sh2.PK - person Laoujin; 28.09.2012