Объединение двух таблиц данных с разными именами столбцов - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть две таблицы данных с разными именами столбцов, потому что они заполнены из двух разных таблиц MySQL

  • DataTable1 имеют ID, Name, Brand, Genre и Creator
  • DataTable2 имеет ID, Name, Brand, Type и EntryCreator

Я хотел объединить оба из них, чтобы я мог отобразить оба в DataGridView1.Я сделал

DataTable2.Columns(3).ColumnName = "Genre" DataTable2.Columns(4).ColumnName = "Creator"

А потом DataTable1.Merge(DataTable2, false, MissingSchemaAction.Add) BindingSource1.DataSource = DataTable1 DataGridView1.Source = BindingSource1

Но на дисплее отображаются только данные из DataTable2

1 Ответ

0 голосов
/ 07 февраля 2019

Вероятно, проблема вызвана тем, что Merge использует PrimaryKey таблицы, чтобы найти существующую запись для обновления, и если она не может найти ее, то добавьте новую запись.Если это так, то вы должны отключить информацию PrimaryKey, полученную после заполнения таблицы через адаптер данных.

dataTable1.PrimaryKey = Nothing
dataTable2.PrimaryKey = Nothing
dataTable1.Merge(dataTable2, false, MissingSchemaAction.Add)
....

Теперь Merge не может найти совпадения, и поэтому каждая запись в dataTabl2 добавляется в dataTable1.Однако я должен предупредить вас, чтобы следить за производительностью и правильностью других операций с этой таблицей данных.
Теперь нет набора PrimaryKey, и это может стать источником проблем при обновлении и удалении строки (если у вас есть эти операцииконечно)

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