[C#]读取数据库,动态生成TreeView[递归]

    我自己的画图界面已经做完了,现在开始连接后台,引用WEB服务,然后读取数据库,有个地方要动态生成树,昨天弄了半天,结果怎么弄怎么是死循环,领导又去开会,结果钻进牛角尖就出不来了,还好今天早上领导一来看看我的代码,一眼就看出毛病了,我也恍然大悟,看来自己对数据机构和算法这些基础内容还有很大的欠缺啊,现在终于写出来, 把结果和大家分享,昨天上网看的时候发现有人和我一样的问题。

 

       private void init() {
	   this.m_userId = 101;
            this.comboBox1.Items.Clear();
            this.treeView.Nodes.Clear();
            
            CatalogNode rootNode = new CatalogNode("请选择分类");
            rootNode.Id = 0;
            this.treeView.Nodes.Add(rootNode);
            this.showTreeView(rootNode);
            this.treeView.Nodes[0].Expand();
        }

        private void showTreeView(CatalogNode parentNode) {
	   //从数据库中查寻结果
            catalogBean[] cataArray = this.m_service.queryCatalogs(parentNode.Id, this.m_userId);
            if(null == cataArray){
                return;
            }
            for (int i = 0; i < cataArray.Length; i++) {
                CatalogNode cn = new CatalogNode(cataArray[i].name);
                cn.Id = cataArray[i].id;
                cn.ParentId = cataArray[i].parentId;
                cn.Description = cataArray[i].description;
                this.comboBox1.Items.Add(cn.Name);
                parentNode.Nodes.Add(cn);
            }
            foreach (CatalogNode cn in parentNode.Nodes) {
                this.showTreeView(cn);
            }
        }



注:CatalogNode类是我自己写的一个继承自TreeNode的类,多了id(long) , parentId(long)和description(string)属性,用起来方便,没其他的。

service是公司自己研发的框架,面向对象的数据库操作~所以查出来的直接是数组~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值