请教VB中TreeView控件的节点添加问题,谢谢
我想问一下,我现在在做一个产品树管理系统,是用 VB6.0做的。我是从数据库中做好的表读取数据,然后将其显示在一个TreeView控件中,这个数据库中的表的结构如下所示:(parent是当前节点的父节点的id,child是当前节点的id,child_type是当前节点的类型:1为产品,2为组件,3为零件,index_id是当前节点在数据库中自动生成的)
PARENT CHILD CHILD_TYPE CHILD_NAME INDEX_ID
0 88 1 双输入伺服阀 1
88 89 2 衔铁组件 2
88 91 2 油滤组件 4
89 90 3 弹簧管 3
91 90 3 弹簧管 5
我的问题就是,此表中的第四行与第五行都是同一个零件(其节点id相同,都是90),它属于两个不同的组件,也就是说这两个组件都拥有同一个零件。但是我要读取此表,想把其中的内容显示在一个TreeView控件中,这就用到了TreeView控件的TreeView1.Nodes.Add方法,此方法的完整参数表示形式为Function Add([Relative], [Relationship], [Key], [Text], [Image], [SelectedImage]) As Node,这个方法中最重要的是第三个key参数,在每添加一个节点时,它都不能和前后任何一个节点的key参数重复,这个key代表的是本节点的id,即child字段代表的
id,而且这个key参数的值不能只是数字。但是现在有两个零件的child字段值都是相同的(都是90),所以在使用TreeView1.Nodes.Add方法时,解决的办法是给这两个节点每个的key参数加一个字母,比如属于组件节点89的零件的key参数为CStr(rs("child") & "a"),属于节点91的零件的key参数为CStr(rs("child") & "b"),这样就不仅解决了每个节点的key参数不能重复的问题,而且解决了key参数不能仅仅为数字的问题。
但是我现在遇到的最大障碍是,数据库的表中有大量的属于不同节点的相同零件(即其属于的父节点的id不同,但是这个子节点的id值都是相同的),如果都用我上面所用的方法,那么代码量就相当的大了,操作起来相当困难。主要的问题就是集中在这个TreeView1.Nodes.Add方法的key参数上,唉,它的限制太多了。我想问一下,在VB6.0中,还有没有其他方法来读取一个数据库中的表,从而把它中的内容按节点之间的关系添加到TreeView控件中呢?或者有没有其他方法,可以避开add方法中的种种限制呢?
希望大家给小弟以指点,我现在有2000多分,我愿意把分全部给大家,谢谢!!!