不用递归函数也能生成目录树,且更简单高效。
下面以【行政区划】表为例(只有【区划代码】、【区划名称】、【区划年份】3列),生成省直辖市自治区和地州市盟二级目录树,全部代码如下:
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd As WinForm.TreeNode
Dim dt As DataTable = DataTables("行政区划")
Dim dr1,dr2 As DataRow
Dim dm As String
trv.StopRedraw()
trv.Nodes.Clear
For Each dr1 In dt.Select("区划代码 like '%0000' and 区划年份 = " & DMNF,"区划名称") '全局变量DMNF为采用的区划年份,可以事先获取
dm = left(dr1("区划代码"),2) & "%"
nd = trv.Nodes.Add(dr1("区划名称"))
For Each dr2 In dt.Select("区划代码 like '" & dm & "' and 区划代码 like '%00' And 区划代码 not Like '%0000' And 区划年份 = " & DMNF,"区划名称")
nd.Nodes.Add(dr2("区划名称"))
Next
Next
trv.ResumeRedraw()