我有一个很长的代码,可以创建两个数据表并在运行时用数据填充它们。我需要创建一个表,但不是合并它的方式,而是像从一个数据表中添加列作为新列(但填充数据)到另一个。我可以做的最好的例子是加入SQL,但我会尝试绘制一些例子。我不能把我的代码放在这里,因为我说它太长了。
实施例: (只有列名,但想象下每个|某些|是很多行)
表1:
表2:
结果:
日期| AA | AA 2 | AA3 | AA4 | AA5 | AA6 | BB | BB2 | BB3 | BB4 | BB5 | BB6 |
答案 0 :(得分:1)
DataTable.Merge方法完全能够产生您想要的结果。由于您的两个表只有一个共同的列Date
,我假设它至少是Table 1
的PrimaryKey。
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
此代码产生以下结果: