zoukankan      html  css  js  c++  java
  • Winfrom treeview 如何从多个数据表中获取数据动态生成

    本文转载:http://www.cnblogs.com/VincentLuo/archive/2008/03/29/1128987.html

    在 汪洋怡舟的这篇文章中【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第四个表的实现图.bmp

    mytest.jpg

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

  • 相关阅读:
    MSMQ简例
    C#观察者模式简例
    C#常见算法题目(面试准备)
    HttpWebRequest
    自定义Attribute简例
    .Net下的 ORM框架介紹
    for xml path的应用
    .net中日至框架log4net.dll如何使用
    动态载入.ascx用户控件
    wap 2.0 编写规范
  • 原文地址:https://www.cnblogs.com/51net/p/4015318.html
Copyright © 2011-2022 走看看