visual basic(vb.net)中运用两表之间的相同字段实现数据在表间流转

visual basic(vb.net)中运用两表之间的相同字段实现数据在表间流转的应用场景

我们在运用visual basic(vb.net)开发应用程序的过程中,

数据流转可谓是必然,

但是采用好的方法进行数据流转,

常常可以达到事半功倍的效果,

这次我就向大家介绍这一个方法。

visual basic(vb.net)中运用两表之间的相同字段实现数据在表间流转的解决方法

首先构建一个visual basic(vb.net)获取相同字段的公共过程,

sql语言可以参考我的另一篇文章《sql server中如何获取两个数据表中相同的字段》,

 Private Function GetColName(ByVal sTableName As String, ByVal dTableName As String) As String
        Try
            Dim Sql As String
            Dim Dst As New DataSet
            Sql = "select a.name from ( " + vbCrLf + _
                "		select b.name from sysobjects a	left join syscolumns b on a.id = b.id where a.name = '" + 表1名称 + "' " + vbCrLf + _
                "	) a " + vbCrLf + _
                "	left join ( " + vbCrLf + _
                "		select b.name from sysobjects a left join syscolumns b on a.id = b.id where a.name = '" + 表2名称 + "' " + vbCrLf + _
                "	) b on a.name = b.name  " + vbCrLf + _
                "	where ISNULL(b.name,'') <> '' "
            Dst = Exec(Sql, ExecType.DataSet)
            
            rem 这里是构建字符串
            Dim sstr As String = ""
            For Each row In Dst.Tables(0).Rows
                sstr += "[" + row(0) + "],"
            Next
            Return sstr.Trim(",")
        Catch ex As Exception
            Throw ex
        End Try
  End Function

然后,调用这个过程获得相同字段的字符串,

同时可以通过replace进行修改字符串对应内容,

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            rem 调用过程获取相同字段
            Dim tblPipesStockColumn As String = GetColName("tblPipesStock", "tblDoOrderSplitWeight")
            
            rem 给字段添加别名
            Dim tblProducts_all_OutStockDetail_AColumn As String = "a." + Replace(tblPipesStockColumn, ",", ",a.")
            rem 对部分字段做特殊处理
            tblProducts_all_OutStockDetail_AColumn = Replace(tblProducts_all_OutStockDetail_AColumn, "a.[Pcs]", "0 Pcs")
            tblProducts_all_OutStockDetail_AColumn = Replace(tblProducts_all_OutStockDetail_AColumn, "a.[Weight]", "0 Weight")
            rem 使用插入语句
            Sql = "Insert into tblPipesStock(" + tblPipesStockColumn + ")"
            Sql += " Select " + tblProducts_all_OutStockDetail_AColumn + " " + vbCrLf + _
                " from tblDoOrderSplitWeight a " + vbCrLf + _
                " left join tblPipesStock b on a.PcsNo = b.PcsNo" + vbCrLf + _
                " where a.StripOrderNo = '123456' "
            Exec(Sql, ExecType.NonQuery)
        Catch ex As Exception
            MsgBox(ex.Message.ToString)
        End Try
    End Sub

visual basic(vb.net)中运用两表之间的相同字段实现数据在表间流转的结论

通过这样一个方法,极大的减少visual basic(vb.net)的代码量和出错率,

而且如果是直接用字段插入,一般非常长,容易看花眼!

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容