Вероятно, проблема вызвана тем, что Merge использует PrimaryKey таблицы, чтобы найти существующую запись для обновления, и если она не может найти ее, то добавьте новую запись.Если это так, то вы должны отключить информацию PrimaryKey, полученную после заполнения таблицы через адаптер данных.
dataTable1.PrimaryKey = Nothing
dataTable2.PrimaryKey = Nothing
dataTable1.Merge(dataTable2, false, MissingSchemaAction.Add)
....
Теперь Merge не может найти совпадения, и поэтому каждая запись в dataTabl2 добавляется в dataTable1.Однако я должен предупредить вас, чтобы следить за производительностью и правильностью других операций с этой таблицей данных.
Теперь нет набора PrimaryKey, и это может стать источником проблем при обновлении и удалении строки (если у вас есть эти операцииконечно)