在 汪洋怡舟的这篇文章中【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);
        }
    }
}

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

转载于:https://www.cnblogs.com/VincentLuo/archive/2008/03/29/1128987.html

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

  1. php怎么删除表数据,php怎样删除数据表中的数据_后端开发

    php删除数据表中的数据的要领:能够经由过程mysqli_query()函数连系DELETE FROM语句来举行删除.DELETE FROM语句用于从数据库表中删除纪录,语法结构为:[DELETE F ...

  2. 数据库笔记03:管理数据表中的数据

    /***************************  第三单元:管理数据表中的数据 ***************************/ /************************* ...

  3. 17.2.3 通过查看triggers数据表中的数据查看触发器的信息

    17.2.3 通过查看triggers数据表中的数据查看触发器的信息 在MySQL中,会将触发器的信息存储到information_schema数据库中的triggers数据表中.可以通过查看info ...

  4. mysql中清空数据表中的数据,不删除数据表

    1.清空不带外键约束的数据表中的数据 使用delete语句清空`t_test`表中的数据 delete from `t_test`; 使用truncate语句清空`t_test`表中的数据 trunc ...

  5. xlsx表格怎么做汇总统计_Excel表格中如何快速汇总多个数据表中的数据

    原标题:Excel表格中如何快速汇总多个数据表中的数据 在Excel工作表中,如果需要汇总报告多个单独单元格的结果,可以将这些单元格中的数据合并到一个主工作表中.这些工作表可以与主工作表在同一个工作簿 ...

  6. 编写Scala代码,使用Spark讲Mysql数据表中的数据抽取到Hive的ODS层

    编写Scala代码,使用Spark讲Mysql数据表中的数据抽取到Hive的ODS层 抽取MySQL的metast库中Production表的全量数据进入Hive的ods库中表production,字 ...

  7. mysql 目录武沛齐_MySQL数据表中的数据操作

    1.插入数据 insert into t_user (username,password,nickname) values ('foye','123','佛爷'); 以下方式必须写出所有的字段 ins ...

  8. oracle中获取列的值,oracle - Oracle-SQL从具有特定列和值的所有表中获取数据 - SO中文参考 - www.soinside.com...

    假设我们有一个表ACCOUNT,其中的CUST_ID列如下:SQL> SELECT OWNER, A.TABLE_NAME, COLUMN_NAME FROM 2 ALL_TAB_COLS A ...

  9. access查询两列信息合并输出_如何在Access中合并两个数据表中的数据

    当我们使用Access处理数据时,我们经常需要合并具有相同表结构的两个数据记录.那么如何实现这一功能呢?以下编辑愿与您分享. 工具/材料 Access 操作方法 打开Access软件,新建两个数据表. ...

  10. MySQL数据表中的数据单表查询

    SELECT语句 使用SELECT语句进行对数据表查询:语法格式为: SELECT [ALL | DISTINCT] * | 列名1 [,列名2,-,列名N] FROM 表名 [ WHERE 条件表达 ...

最新文章

  1. 一个奇葩的标志寄存器 flag寄存器
  2. 暂缓上市!小马智行SPAC赴美上市计划推迟,自驾IPO路漫漫
  3. 欧盟AI道德准则草案出炉
  4. python中if brthon环境安装包_Ant、Gradle、Python三种打包方式的介绍
  5. python怎么创建列表_用Python将一个列表分割成小列表的实例讲解 Python 如何创建一个带小数的列表...
  6. java+路径拦截实现_SpringBoot实现拦截器
  7. HDU 1542 Atlantis 线段树+离散化+扫描线
  8. 通过互联网搜索接口更新拼写语法库的设计
  9. 增值税发票税控开票软件 无法正常启动
  10. 三目表达式运算符优先级分析
  11. 重邮python实验课之华氏温度转摄氏温度速查表
  12. Python3从搜狐国际新闻抓取---完整版
  13. android网络测试上传速度慢,【教程】状态栏添加网速 《双排上传速度和下载速度》(转)...
  14. 【博主推荐】html好看的爱心告白源码
  15. 秦朔-王坚:不理解在线,就没有真懂互联网
  16. java实验报告可下载_JAVA实验报告.doc
  17. 结合d3.js实现气象数据的可视化
  18. linux:Nginx+https双向验证(数字安全证书)
  19. java 自然常数e中出现的连续的第一个10个数字组成的质数_冷知识:数学常数“e”的传奇故事...
  20. 旭日X3派AI推理(YOLOv5测试)

热门文章

  1. 监督分类空白处也被分类了_如何兼容自训练与预训练:更高效的半监督文本分类模型...
  2. java 中的radix_线程“main”中的异常java.lang.NumberFormatException:Radix超出范围
  3. python处理json数据(复杂的json转化成嵌套字典并处理)
  4. 计算机在线拍照解答,摄影景深在线计算器
  5. linux线程的理解,linux线程与进程的理解
  6. java 对象的初始化_java 类和对象的初始化
  7. Windows上的Spark环境搭建后,运行时报错的问题
  8. Java 实现区块链中的区块,BLOCK的实现
  9. 【吴恩达机器学习】学习笔记——梯度下降
  10. App Shortcuts 快捷方式 Android7 1 的3D Touch