请教个关于外部数据表用递归函数生成目录树的问题:
有没有办法在不添加外部数据表的情况下,用递归函数生成目录树?
我的自定义函数AddChildren内容如下:
Dim nd As WinForm.TreeNode = args(0)
Dim dt As DataTable = args(1)
Dim drs As List(of DataRow)
drs = dt.Select("[parentid] = '" & nd.name & "'")
For Each dr As DataRow In drs
Dim cd As Winform.TreeNode = nd.Nodes.Add(dr("objname"),dr("objjc"))
Functions.Execute("AddChildren",cd,dt)
Next
自定义函数“数据提取”的内容如下:
'做一个通用的数据提取函数
Dim sql As String = Args(0) 'sql语句
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = sql
dt = cmd.ExecuteReader()
Return dt
下拉窗口代码如下:
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd As WinForm.TreeNode
Dim sql As String = "Select a.objid, a.objjc, (Select Count(objid) FROM D020 WHERE parentid = a.objid) As 下级数 " _
& " FROM D020 As a WHERE a.objtype = 1 "
Dim dt As DataTable = Functions.Execute("wis数据提取",sql)
tr.StopRedraw()
tr.Nodes.Clear
'tr.Nodes.Add("全部") '这么大的数据量,就不要加全部了
For Each dr As DataRow In dt.datarows
nd = tr.Nodes.Add(dr("objid"),dr("objjc"))
If dr("下级数") > 0 Then
nd.Nodes.Add("空")
End If
Next
tr.ResumeRedraw()
[此贴子已经被作者于2014-9-15 15:38:46编辑过]