明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

使用TreeView完成無限級擴展節(jié)點

[摘要]功能實現(xiàn)要求:操作環(huán)境vb.net和oracle9i 由于數(shù)據(jù)量很大,所以不能利用rs結(jié)果集一次讀出,在往treeview節(jié)點上填充。需要填充樹型節(jié)點的字段內(nèi)數(shù)據(jù)形式為以"."分割如:01 01.01 01.02 01.01.01 02 02.01 02.01 .........

功能實現(xiàn)要求:

操作環(huán)境vb.net和oracle9i

 

由于數(shù)據(jù)量很大,所以不能利用rs結(jié)果集一次讀出,在往treeview節(jié)點上填充。

需要填充樹型節(jié)點的字段內(nèi)數(shù)據(jù)形式為以"."分割

如:01   01.01 01.02 01.01.01 02 02.01 02.01 ............................

利用oracle自身instr函數(shù),可以按"."數(shù)分割。并返回所需要的結(jié)果集,初始化加載讀取不帶"."字段,第一次讀取帶一個"."…………

至于sqlserver數(shù)據(jù)庫與oracle的函數(shù)書寫略有不同,可以到google,csdn等地方去查找。

sql語句的大致寫法如下:

If pDotCount = 0 Then
                    sqlString = "select t.需要分割的字段,t.cname from 表名 t where Instr(t.icsn, '.', 1, 1)=0"
                Else
                    sqlString = "select t.需要分割的字段,t.cname from 表名 t where Instr(t.icsn, '.', 1," & pDotCount & ")>0 and Instr(t.icsn, '.', 1, " & (pDotCount + 1) & ")=0 and Instr(t.icsn,'" & pParent & "',1,1)=1"
                End If

pDotCount為需要讀取的字段中"."的個數(shù)

然后通過雙擊事件獲得父節(jié)點(即為選中節(jié)點),sql語句中pParent,返回屬于該父節(jié)點的子節(jié)點,這樣一級一級雙擊即可實現(xiàn)無限擴展,直至走到數(shù)據(jù)最后一層為止

檢索定位任一節(jié)點