使用TreeView完成無限級擴展節(jié)點
發(fā)表時間:2024-02-14 來源:明輝站整理相關軟件相關文章人氣:
[摘要]功能實現(xiàn)要求:操作環(huán)境vb.net和oracle9i 由于數(shù)據(jù)量很大,所以不能利用rs結果集一次讀出,在往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結果集一次讀出,在往treeview節(jié)點上填充。
需要填充樹型節(jié)點的字段內(nèi)數(shù)據(jù)形式為以"."分割
如:01 01.01 01.02 01.01.01 02 02.01 02.01 ............................
利用oracle自身instr函數(shù),可以按"."數(shù)分割。并返回所需要的結果集,初始化加載讀取不帶"."字段,第一次讀取帶一個"."…………
至于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é)點