我有关于在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读者并回答我的问题。 ^ _ ^
答案 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**