• treeview 如何从多个数据表中获取数据动态生成 [提问]


    汪洋怡舟的这篇文章中【http://www.cnblogs.com/longren629/archive/2007/03/14/674633.html】只使用了一个数据表,效果如图2

    我想使用多个表来生成动态的treeview,效果如图三,代码如下所示

    在第二次与第三次的代码中,代码出现重复,中间只是改了表名、列名

    多个表之间,是否也可以实现递归呢,不管它的表名与列名是否相同?

        protected DataSet BindDate(string select)
        {
            Database db = DatabaseFactory.CreateDatabase();
            DbCommand cmd = db.GetSqlStringCommand(select);
            DataSet ds = db.ExecuteDataSet(cmd);
            return ds;
        }

        public void BindTree()//第一次
        {
            DataSet ds = BindDate("select * from tree");
            int count = ds.Tables[0].Rows.Count;
            for (int i = 0; i < count; i++)
            {
                TreeNode tn = new TreeNode();
                tn.Text = ds.Tables[0].Rows[i]["Name"].ToString();
                tn.Value = ds.Tables[0].Rows[i]["ID"].ToString();
                BindRoot("select * from Root where ID='" + int.Parse(ds.Tables[0].Rows[i]["ID"].ToString()) + "'", tn);
                trvList.Nodes.Add(tn);
            }
        }
        public void BindRoot(string sql, TreeNode TN)//第二次
        {
            DataSet ds = BindDate(sql);
            int count = ds.Tables[0].Rows.Count;
            for (int i = 0; i < count; i++)
            {
                TreeNode tn = new TreeNode();
                tn.Text = ds.Tables[0].Rows[i]["Name"].ToString();
                tn.Value = ds.Tables[0].Rows[i]["RootID"].ToString();
                BindParent("select * from Parent where RootID='" + int.Parse(ds.Tables[0].Rows[i]["RootID"].ToString()) + "'", tn);
                TN.ChildNodes.Add(tn);
            }
        }
        public void BindParent(string sql, TreeNode TN)//第三次
        {
            DataSet ds = BindDate(sql);
            int count = ds.Tables[0].Rows.Count;
            for (int i = 0; i < count; i++)
            {
                TreeNode tn = new TreeNode();
                tn.Text = ds.Tables[0].Rows[i]["Name"].ToString();
                tn.Value = ds.Tables[0].Rows[i]["RootID"].ToString();
                TN.ChildNodes.Add(tn);
            }
        }
    }


    表结构.jpg第四个表的实现图.bmpmytest.jpg

    文件下载:https://files.cnblogs.com/VincentLuo/SolutionTreeView.rar

  • 相关阅读:
    参数传递二维数组 .
    类的static成员变量和成员函数能被继承吗
    Oracle面试题(基础篇)
    Visual C++ 8.0对象布局
    C++对象模型 多重继承与虚函数表
    浅析GCC下C++多重继承 & 虚拟继承的对象内存布局
    C++对象内存布局测试总结
    查找
    反转链表
    排序
  • 原文地址:https://www.cnblogs.com/VincentLuo/p/1128987.html
Copyright © 2020-2023  润新知