テーブルからデータをツリーになる処理

''' <summary>  ''' テーブルからデータをツリーになる処理  ''' </summary>  ''' <param name="tbl">データテーブル</param>  ''' <param name="nodes">ツリーの親ノード</param>  ''' <param name="col">列番</param>  ''' <param name="rowS">スタート行番</param>  ''' <param name="rowE">ラスト行番</param>  ''' <remarks></remarks>  Private Sub doTreeNode(ByVal tbl As DataTable, ByRef nodes As TreeNode, ByVal col As Integer, ByVal rowS As Integer, ByVal rowE As Integer)   Try    Dim strValue As String = ""    Dim addRows As Integer = 0 '毎回が循環された行数を記録する変数    Dim firstFlg As Boolean = True    Dim childNode As TreeNode = Nothing    Dim ii As Integer    For ii = rowS To rowE     If Not strValue.Equals(tbl.Rows(ii - 1).Item(col)) Then      If firstFlg Then '第一回する時ノードを作成する       childNode = New TreeNode       childNode.SelectAction = TreeNodeSelectAction.None

      strValue = tbl.Rows(ii - 1).Item(col).ToString()       childNode.Text = strValue

      nodes.ChildNodes.Add(childNode)

      firstFlg = False      Else       If nodes.ChildNodes.Count <> 0 And col <> tbl.Columns.Count - 1 Then        '次列ノードについてデータを作成する        doTreeNode(tbl, nodes.ChildNodes(nodes.ChildNodes.Count - 1), col + 1, ii - addRows, ii - 1)

       addRows = 0 'クリアする       End If

      '当時の親ノードに次ノードを作成する       childNode = New TreeNode       childNode.SelectAction = TreeNodeSelectAction.None

      strValue = tbl.Rows(ii - 1).Item(col).ToString()       childNode.Text = strValue

      nodes.ChildNodes.Add(childNode)      End If     Else      'If ii = tbl.Rows.Count And col <> tbl.Columns.Count - 1 Then      ' doTreeNode(tbl, nodes.ChildNodes(nodes.ChildNodes.Count - 1), col + 1, ii - addRows, ii)      'End If     End If

    addRows = addRows + 1 '毎回が循環された行数を記録する    Next

   '行数がrowEまでに循環した後、もし列数はまだ最後列にならない場合が次列に設定して続きって循環する    If col <> tbl.Columns.Count - 1 Then     doTreeNode(tbl, nodes.ChildNodes(nodes.ChildNodes.Count - 1), col + 1, ii - addRows, ii - 1)    End If   Catch ex As Exception    Throw ex   End Try  End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值