Foxtable(狐表)用户栏目专家坐堂 → [求助]请求简化代码


  共有9730人关注过本帖树形打印复制链接

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

帅哥哟,离线,有人找我吗?
dqlgood
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:257 积分:4393 威望:0 精华:0 注册:2011/7/5 9:38:00
[求助]请求简化代码  发帖心情 Post By: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楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251397 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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

 回到顶部