vb.net控件treeview从数据库获得数据分层显示

建立一个部门表,根据编码分层,比如00代表'生产部',0001就代表生产部下属的'大件车间'。我的问题是在VB.NET中如何用treeview控件将部门分层显示出来。... 建立一个部门表,根据编码分层,比如00代表'生产部',0001就代表生产部下属的'大件车间'。
我的问题是在VB.NET中如何用treeview控件将部门分层显示出来。
展开
 我来答
百度网友edaca2e86
推荐于2016-04-05 · TA获得超过145个赞
知道小有建树答主
回答量:411
采纳率:100%
帮助的人:411万
展开全部
说实话一般不是你这样存储的,一般是用一个字段存储ID号,然后用另一个字段存储上级单位的ID号,然后用递归函数生成TreeView。建议你增加一个字段,然后将编号解析出的上级单位存储在里面。以下是我的一个程序用的递归函数:
表名是unit,其中包含了单位名称unit_name,编号unit_id,Unit_upper就是上级单位的id号。
调用方式是 addtree(ds1, TreeView1.Nodes, 0),其中ds1是一个DataSet,对应单位的表,treeview1是控件名称,0是固定值,与表中根节点部门的Unit_upper一致(这个单位没有上级)。

Public Function addtree(ByVal ds As DataSet, ByVal treename As TreeNodeCollection, ByVal x1 As Integer) As Boolean

Dim dt As DataTable = ds.Tables("unit")
Dim dm As BindingManagerBase = Me.BindingContext(ds, "unit")
Dim dr As DataRow() = dt.Select("unit_upper=" & x1.ToString)
Dim dr1 As DataRow
Dim nd As TreeNode
Dim nd1 As TreeNode
Dim x2 As Integer
If dr.GetLength(0) <> 0 Then
For Each dr1 In dr

nd = treename.Add(dr1("unit_name"))
nd.Tag = (dr1("unit_id"))
x2 = treename.IndexOf(nd)
addtree(ds, treename.Item(x2).Nodes, dr1("unit_id"))
Next
End If
Return True

End Function
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式