博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Winfrom treeview 如何从多个数据表中获取数据动态生成
阅读量:6652 次
发布时间:2019-06-25

本文共 1482 字,大约阅读时间需要 4 分钟。

本文转载:

在 的这篇文章中【】只使用了一个数据表,效果如图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

文件下载:

你可能感兴趣的文章
iOS开发--二维码的扫描
查看>>
十年技术
查看>>
bzoj 3211: 花神游历各国
查看>>
C++私有构造函数
查看>>
快捷键打开服务
查看>>
感知器神经网络
查看>>
mysql 常见的备份架构及技术
查看>>
SAS vs SSD对比测试MySQL tpch性能
查看>>
常用思科设备图标(JPG+矢量图)
查看>>
Redis主从持久化测试
查看>>
DOCKER网络代理设置
查看>>
Xamarin 学习笔记 - Page(页面)
查看>>
Azure运维系列 8:使用现有磁盘创建虚拟机
查看>>
Spread for Windows Forms高级主题(8)---通过暂停布局提高性能
查看>>
SaltStack入门(二)Grains、NoteGroup和State
查看>>
Android系统的开机画面显示过程分析(11)
查看>>
统一沟通-技巧-6-Jeff Schertz-博文-地址-汇总-2011-04-08
查看>>
powershell命令大全
查看>>
Windows Server 2012 从入门到精通系列之如何提高DC持续性?
查看>>
Android应用程序键盘(Keyboard)消息处理机制分析(6)
查看>>