vb.net 两个不同结构的Datatable合并

这是一个VB.NET函数,名为PrivateFunctionDataTable_UniteDataTable,用于合并两个DataTable对象。它首先创建一个新的DataTable dt3作为副本,然后添加dt2的所有列。接着,将dt1的行复制到dt3中,并根据dt1和dt2的行数差异处理dt2的剩余行。最后返回合并后的dt3。
摘要由CSDN通过智能技术生成
Private Function DataTable_UniteDataTable(ByVal dt1 As DataTable, ByVal dt2 As DataTable) 
        Dim dt3 As New DataTable

        dt3 = dt1.Clone()
        For i As Int16 = 0 To dt2.Columns.Count - 1 Step 1
            dt3.Columns.Add(dt2.Columns(i).ColumnName)
        Next
        Dim obj() As Object
        ReDim obj(dt3.Columns.Count)
        For i As Int16 = 0 To dt1.Rows.Count - 1 Step 1
            dt1.Rows(i).ItemArray.CopyTo(obj, 0)
            dt3.Rows.Add(obj)
        Next

        If dt1.Rows.Count >= dt2.Rows.Count - 1 Then
            For i As Int16 = 0 To dt2.Rows.Count - 1 Step 1
                For j As Int16 = 0 To dt2.Columns.Count - 1 Step 1
                    dt3.Rows(i)(j + dt1.Columns.Count - 1) = dt2.Rows(i)(j)
                Next
            Next
        Else
            Dim dr3 As DataRow
            For i As Int16 = 0 To dt2.Rows.Count - 1 - dt1.Rows.Count - 1 Step 1
                dr3 = dt3.NewRow()
                dt3.Rows.Add(dr3)
            Next
            For i As Int16 = 0 To dt2.Rows.Count - 3 Step 1
                For j As Int16 = 2 To dt2.Columns.Count - 2 Step 1
                    dt3.Rows(i)(j + dt1.Columns.Count - 2) = dt2.Rows(i)(j)
                Next
            Next
        End If
        Return dt3


    End Function

Mark

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值