将列从一个数据表复制到另一个数据表

时间:2014-03-18 20:17:59

标签: c# .net vb.net

我遵循了要求。 我有两个数据表结构如下:

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的方法?)请帮助!!

2 个答案:

答案 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()