我遵循了要求。 我有两个数据表结构如下:
DT1:
列:PrimaryKey,Style,Color,OTS0,OTS1
数据:1 S1 C1 5 6
2 S1 C2 1 2
DT2:
列:PrimaryKey,Style,Color,OTS2,OTS3
数据:1 S1 C1 1 2 2
S1 C2 3 4
我需要合并上面两个数据表,最终结果数据表的结构如下:
dtResult:
列:PrimaryKey,Style,Color,OTS0,OTS1,OTS2,OTS3
数据:1 S1 C1 5 6 1 2 2
S1 C2 1个2 3 4
我们怎样才能做到这一点? (有没有直接使用Linq的方法?)请帮助!!
答案 0 :(得分:0)
假设数据表具有相同的行数,这可能有效:
VB.NET:
Dim i As Integer = 0
Dim i2 As Integer
Dim Colinx As Integer
Do Until i = dt1.Columns.Count
If dt1.Columns(i).ColumnName.Contains("OTS") Then
Colinx = dt2.Columns.Count
dt2.Columns.Add(dt1.Columns(i).ColumnName, GetType(Integer))
i2 = 0
Do Until i2 = dt2.Rows.Count
dt2.Rows(i2)(Colinx) = dt1.Rows(i2)(i)
i2 = i2 + 1
Loop
End If
i = i + 1
Loop
答案 1 :(得分:0)
SQL数据库数据表:使用select into statement ....
.net Datatable Object :(我假设您拥有dt2中dt1的所有密钥)
dtresult = dt1.Copy
Dim ds As New DataSet
ds.Tables.Add(dtresult )
ds.Tables.Add(dt2)
ds.Relations.Add("KeyRelation", dt2.Columns("Key"), dtresult .Columns("Key"))
dtresult .Columns.Add("OTS2", System.Type.GetType("System.Int32"), "Parent.OTS2")
dtresult .Columns.Add("OTS3", System.Type.GetType("System.Int32"), "Parent.OTS3")
dtresult.AcceptChanges()