Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共2 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[求助]请求简化代码

1楼
dqlgood 发表于:2012/2/13 14:24:00
 

在“表A"“第一列”无重复行的情况下想要将“表A”“第二列”的项目分离到“表B”编码如下,但当项目较多时编码太长,不知如何设定变量n,请把编码简化一下。

Select Case e.DataCol.name

    Case "第二列"

        If e.DataRow.IsNull("第二列") Then

        Else

            Dim dts As List(Of DataRow)

            dts = DataTables("表B").Select("[第一列] = '" & e.DataRow("第一列") & "'")

            For Each dt As DataRow In dts

                dt.Delete()

            Next

            Dim p() As String = e.DataRow("第二列").split("|")

            Dim dr1 As Row = Tables("表B").AddNew()

            dr1("第二列") = p(0)

            dr1("第一列") = e.DataRow("第一列")

            If p.length > 1 Then

                Dim dr2 As Row = Tables("表B").AddNew()

                dr2("第二列") = p(1)

                dr2("第一列") = e.DataRow("第一列")

                If p.length > 2 Then

                    Dim dr3 As Row = Tables("表B").AddNew()

                    dr3("第二列") = p(2)

                    dr3("第一列") = e.DataRow("第一列")

                    If p.length > 3 Then

                        Dim dr4 As Row = Tables("表B").AddNew()

                        dr4("第二列") = p(3)

                        dr4("第一列") = e.DataRow("第一列")

 

                      ……n个

 

                    End If

                End If

            End If

        End If

End Select

[此贴子已经被作者于2012-2-13 14:24:41编辑过]
2楼
狐狸爸爸 发表于:2012/2/13 14:38:00
Select Case e.DataCol.name
    Case "第二列"
        If e.DataRow.IsNull("第二列") = False Then
            Dim dts As List(Of DataRow)
            dts = DataTables("表B").Select("[第一列] = '" & e.DataRow("第一列") & "'")
            For Each dt As DataRow In dts
                dt.Delete()
            Next
            Dim p() As String = e.DataRow("第二列").split("|")
            For i As Integer = 0 To p.Length - 1
                Dim dr1 As Row = Tables("表B").AddNew()
                dr1("第二列") = p(i)
                dr1("第一列") = e.DataRow("第一列")
            Next
        End If
End Select
共2 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02930 s, 2 queries.