• 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

  • 相关阅读:
    hdu 1251(字典树)(3种方法)
    HDU 2203(KMP算法)
    九度oj 题目1335:闯迷宫
    poj3894 bfs+记录路径
    状压dp--P2704
    状压dp--洛谷P2622
    动态规划--牛客多校number
    完全背包
    01背包--hdu
    莫比乌斯反演模板--Gym 101982B
  • 原文地址:https://www.cnblogs.com/VincentLuo/p/1128987.html
Copyright © 2020-2023  润新知