Создание таблицы данных из 2 таблиц, созданных во время выполнения VB.net - PullRequest
0 голосов
/ 31 мая 2018

У меня довольно длинный код, который создает две таблицы данных и заполняет их данными во время выполнения.И мне нужно создать одну таблицу, но не так, как это делает слияние, а как добавление столбцов из одного элемента данных в качестве новых столбцов (но заполненных данными) в другой.Лучший пример, который я могу использовать, это Join in SQL, но я постараюсь нарисовать некоторый пример.Я не могу поместить свой код здесь, поскольку я сказал, что он не слишком длинный.

Пример: (только имена столбцов, но представьте, что под каждым | чем-то | много строк)

Table1:

  • Дата | AA | AA2 | AA3 | AA4 | AA5 | AA6 |

Таблица2:

  • Дата | BB | BB2 | BB3| BB4 | BB5 | BB6 |

Результат:

Дата | AA | AA2 | AA3 | AA4 | AA5 | AA6 | BB | BB2 | BB3 | BB4 | BB5 | BB6 |

1 Ответ

0 голосов
/ 31 мая 2018

Метод DataTable.Merge вполне способен дать желаемый результат.Поскольку ваши две таблицы имеют только один общий столбец Date, я предполагаю, что это PrimaryKey по крайней мере Table 1.

Dim dt1 As New DataTable
Dim pk As DataColumn = dt1.Columns.Add("Date", GetType(DateTime))
dt1.PrimaryKey = {pk}

dt1.Columns.Add("C1")
dt1.Columns.Add("C2")
dt1.Rows.Add(#1/1/2018#, "c1", "c2")

Dim dt2 As New DataTable
Dim pk2 As DataColumn = dt2.Columns.Add("Date", GetType(DateTime))

dt2.Columns.Add("C3")
dt2.Columns.Add("C4")
dt2.Rows.Add(#1/1/2018#, "c3", "c4")
dt2.Rows.Add(#1/2/2018#, "c3a", "c4a")

Dim dt3 As DataTable = dt1.Copy
dt3.Merge(dt2)
DataGridView1.DataSource = dt3

Этот код дает такой результат:

enter image description here

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