VB.NET treeview错误添加第二个子节点

时间:2014-11-22 08:32:07

标签: vb.net treeview parent-child

我有关于在VB.net中使用treeview显示树的问题

这里有循环的代码

    While Not mROC.EOF
        tmpStr = ""
        For i = 0 To UBound(sColumns) Step 3
            If sColumns(2 + i) = "" Then
                tmpStr = tmpStr & mROC(sColumns(i)).Value
                tmpStr = tmpStr & "   "
            Else
                tmpStr = tmpStr & Format(mROC(sColumns(i)).Value, sColumns(2 + i))
                tmpStr = tmpStr & "   "
            End If
        Next

        If mROC("parentCode").Value = "" Then
            srcTv.Nodes.Add(mROC("code").Value & "A", tmpStr)
        Else
            Dim TNode() As TreeNode = srcTv.Nodes.Find(mROC("parentCode").Value & "A", True)
            TNode(0).Nodes.Add(mROC("code").Value & "A", tmpStr)
        End If
        mROC.MoveNext()
    End While

srcTv是treeview

mROC是使用select命令

进行数据库循环

tmpStr只是结合了数据库中的字段代码和描述,例如:" CT00001 Ari"

这是数据库

code    |description   |parentCode
-----------------------------------
CT00001 |Ari           |KMD
CT00002 |Angga         |KMD
CT00003 |Bagus         |CT00001
KMD     |Parent_A      |
OLH     |Parent_B      |    

我想要的结果是

KMD Parent_A
    -CT00001 Ari
        -CT00003 Bagus
    -CT00002 Angga
OLH Parent_B

当父母只有1个孩子时,我的代码工作正常,但是当第二个孩子(CT00003 Bagus)加载时出错。

请帮助我这个项目和GBU读者并回答我的问题。 ^ _ ^

1 个答案:

答案 0 :(得分:0)

嗯,

你似乎得到了重复的密钥。 试试这个:

        If mROC("parentCode").Value = "" Then
            srcTv.Nodes.Add(mROC("code").Value & "A", tmpStr)
        Else
            Dim TNode() As TreeNode = srcTv.Nodes.Find(mROC("parentCode").Value & "A", True)
            Dim sKey As String = mROC("code").Value
            If srcTv.Nodes.Find(sKey & "A", True) Is Nothing Then
                sKey &= "A"
            Else
                sKey &= "B"
            End If
            TNode(0).Nodes.Add(sKey, tmpStr)
        End If**
相关问题