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);
        }
    }
}

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

时间: 2024-09-30 07:42:22

Winfrom treeview 如何从多个数据表中获取数据动态生成的相关文章

code first网站发布后数据表中没有数据问题

code first网站发布后数据表中没有数据问题 (1).将internal sealed class Configuration类访问修饰符改为public  class Configuration : DbMigrationsConfiguration<SimpleNews.EntityModels.SimpleNewsContext> (2).在Global文件的Start()方法中加入下面一段代码 Database.SetInitializer( new MigrateDatabas

将数据表中的数据添加到ComboBox控件中

实现效果: 知识运用: ComboBox控件的DataSource 属性 //获取或设置ComboBox的数据源 public Object DataResouce{get;set;} //属性值:任何实现了IList接口的对象 如DataSet 泛型集合或数组 DisplayMember属性 //获取或设置要为此列表控件显示的属性 public string DisplayMember{get;set;}  ValueMember属性 //用于列表控件中数据项的实际值 默认为string.Em

查询和删除数据表中重复数据的sql

1.查询表中重复数据.select * from people where peopleId in (select   peopleId   from   people   group   by   peopleId   having   count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 delete from people where peopleId   in (select   peopleI

数据库中取出YYYY-mm-dd H:i:s的数据怎么将其转化成YYYY/mm/dd格式,另外,怎么将一个数据表中的数据插入另一个数据表

sql语句是select  left(replace(rq,'-','/'),10) as rq from 表名 tp5.1中的写法 $res = Db::table('表名') ->field("left(replace(rq,'-','/'),10) as rq") ->paginate(20); $res 取出的是对象类型的数据,本来想循环对象中的rq字段,用PHP来替换字符,但是忘记怎么循环对象了,对对象的操作也是很模糊,哎,先记录下来,以后有时间再处理吧 另在测试

2014.11.26 向MySQL数据表中插入数据时,显示“syntax error”时应检查

插入语句: "insert into tablename (a,b,c,d) values(1,2,3,4)" 插入结果: a b c d 1 2 3 4 有误时,请检查: 1.名值对有没有写错: 2.代码的字符串处理有没有问题: 3.代码中的列名和表中的列名是不是一一对应的: 4.定义的列名是否跟SQL语句中的关键字重复,例如dec等.

用SQL语句将数据表中的数据保存为JSON格式

没有找到好的工具,只想到了拼字符串的方式,用   NVARCHAR(MAX)  可能有截断,不推荐使用,方法中使用了 FOR XML PATH('') 实现,有关其使用方法参考这里 表结构: SQL 语句: SELECT '{"id":'+CONVERT(NVARCHAR(20),id)+',"areacode":'+areacode+',"areaname":"'+areaname+'","paremt_areac

SE11 数据表中 日志数据更改 勾选的作用

[园工]HF-abap-Rainy(574570549)  11:10:12这个有啥作用,勾上了怎么查修改日志呢,[园丁]SH-CRM-ALEX(8738890)  11:13:53SCU3[园丁]SH-CRM-ALEX(8738890)  11:14:58STAD

MySQL查询数据表中数据记录(包括多表查询)

MySQL查询数据表中数据记录(包括多表查询) MySQL查询数据表中数据记录(包括多表查询) 转自:http://www.baike369.com/content/?id=5355 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: select selection_list // 要查询的内容,选择哪些列 from table_list // 从什么表中查询,从何处选择行 where primary_

hive从查询中获取数据插入到表或动态分区

(前人写的不错,很实用,负责任转发)转自:http://www.crazyant.net/1197.html Hive的insert语句能够从查询语句中获取数据,并同时将数据Load到目标表中.现在假定有一个已有数据的表staged_employees(雇员信息全量表),所属国家cnty和所属州st是该表的两个属性,我们做个试验将该表中的数据查询出来插入到另一个表employees中. 1 2 3 4 INSERT OVERWRITE TABLE employees PARTITION (cou