TreeView绑定数据库中的数据实例

原创 2007年10月15日 10:32:00

今天很郁闷。想了很久才完成TreeView绑定数据库中数据的功能,但感觉方法很弱,效率很低。要多次进行数据库的读取。
下面简单介绍一下,希望知道简单方法的朋友能给我点启发。
效果如图:


其中节点的数据军事数据库中的。
下面是代码:(很多循环)

  private void InitTheTree()
    
{
        
string m_NodeName;//根节点名称
        TestManagerRules tempRules = new TestManagerRules();
        ProjectData.TestManager_SelectProjectListDataTable tempTable 
= new ProjectData.TestManager_SelectProjectListDataTable();
        tempTable 
= tempRules.SelectProjectList();
        
for (int i = 0; i < tempTable.Count; i++)
        
{
            
//控制字的长度
            string tempString = Convert.ToString(tempTable[i].ProjectName);
            
if (tempString.Length > 15)
            
{
                tempString 
= tempString.Substring(015+ "";
                m_NodeName 
= tempString;
            }

            
else
            
{
                m_NodeName 
= tempTable[i].ProjectName.ToString();
            }

            TreeNode newNode 
= new TreeNode(m_NodeName, tempTable[i].ProjectID.ToString());
            newNode.NavigateUrl 
= tempRules.GetModulePage(m_ModuleID, ModulePageENUM.ProjectManagement) + "?id=" + newNode.Value;
            newNode.Expanded 
= false;
            
this.CategoryTree.Nodes.Add(newNode);
            
//绑定根节点
        }


     

        
for (int a = 0; a < CategoryTree.Nodes.Count; a++)
        
{
            TreeNode ModuleNode 
= new TreeNode("模块", tempTable[a].ProjectID.ToString());
            ModuleNode.NavigateUrl 
= tempRules.GetModulePage(m_ModuleID, ModulePageENUM.ModuleAddandEdit) + "?id=" + ModuleNode.Value;
            TreeNode TestCombinationNode 
= new TreeNode("测试", tempTable[a].ProjectID.ToString());
             TestCombinationNode.NavigateUrl 
= tempRules.GetModulePage(m_ModuleID, ModulePageENUM.TestCombinationList) + "?id=" + TestCombinationNode.Value;
            
this.CategoryTree.Nodes[a].ChildNodes.Add(ModuleNode);
            
this.CategoryTree.Nodes[a].ChildNodes.Add(TestCombinationNode);

            
string m_ModuleName;
            ProjectData.TestManager_GetModuleInfoByProjectIDDataTable table 
= new ProjectData.TestManager_GetModuleInfoByProjectIDDataTable();
            table 
= tempRules.GetModuleInfoByProjectID(Convert.ToInt32(tempTable[a].ProjectID.ToString()));
            
if (table.Count > 0)
            
{
                
for (int x = 0; x < table.Count; x++)
                
{
                    
string tempmodule = table[x].ModuleName.ToString();
                    
//控制数据的长度
                    if (tempmodule.Length > 15)
                    
{
                        m_ModuleName 
= tempmodule.Substring(015)+"";
                    }

                    
else
                    
{
                        m_ModuleName 
= table[x].ModuleName.ToString();
                    }

                    TreeNode newchildNode 
= new TreeNode(m_ModuleName, table[x].MID.ToString());
                    ModuleData.TestManager_GetProjectIDByModuleIDDataTable projecttable;
                    TestManagerRules rule 
= new TestManagerRules();
                    projecttable 
= rule.GetProjectIDByMID(Convert.ToInt32(newchildNode.Value));
                    newchildNode.NavigateUrl 
= tempRules.GetModulePage(m_ModuleID, ModulePageENUM.TestDemandList) + "?id=" + newchildNode.Value + "&pid=" + projecttable[0].ProjectID.ToString();
                    newchildNode.Expanded 
= false;
                    
this.CategoryTree.Nodes[a].ChildNodes[0].ChildNodes.Add(newchildNode);
                }

            }

        }

        
//循环绑定测试组合数据 
        for (int b = 0; b < CategoryTree.Nodes.Count; b++)
        
{
            
string m_TestCombinationName;
            ProjectData.TestManager_GetTestCombinationInfoByProjectIDDataTable tables 
= new ProjectData.TestManager_GetTestCombinationInfoByProjectIDDataTable();
            tables 
= tempRules.GetTestCombinationInfoByProjectID(Convert.ToInt32(tempTable[b].ProjectID.ToString()));
            ProjectData.TestManager_GetProjectIDByTestIDDataTable projecttable;
            
for (int y = 0; y < tables.Count; y++)
            
{
                
string tempcombination = tables[y].TestName.ToString();
                
//控制数据的长度
                if (tempcombination.Length > 15)
                
{
                    m_TestCombinationName 
= tempcombination.Substring(015+ "";
                }

                
else
                
{
                    m_TestCombinationName 
= tables[y].TestName.ToString();
                }

                TreeNode newchildNode1 
= new TreeNode(m_TestCombinationName, tables[y].TestID.ToString());
                projecttable 
= tempRules.GetProjectIDByTestID(Convert.ToInt32(newchildNode1.Value));
                pid 
= projecttable[0].ProjectID;
                newchildNode1.NavigateUrl 
= tempRules.GetModulePage(m_ModuleID, ModulePageENUM.TestCombinationDetail) + "?id=" + pid.ToString() + "&testid=" + newchildNode1.Value;
                newchildNode1.Expanded 
= false;
                
this.CategoryTree.Nodes[b].ChildNodes[1].ChildNodes.Add(newchildNode1);
            }

        }

    }

很麻烦吧,惭愧,呵呵!希望大家都帮忙!

 

C# WinForm TreeView 动态绑定数据库例如:省、市、区县 三级

前段时间做项目用到了TreeView,闲来没事自己想总结一下TreeView的绑定省市县的方法,希望对想学习的博友有所帮助。提示:省市县数据库可以在网上下载资源很多的。废话不多说了上代码…… 用到的...
  • lianni_1101
  • lianni_1101
  • 2015年06月10日 14:51
  • 1317

winform如何实现将数据库数据加载到树上

一、简介对于winform中如何加载xml生成目录树,在前边一篇文章“c#如何实现从xml中加载树目录,并且显示完整的Text”中我已经写了详细的过程。但是有些时候我们不可能将大量的数据存储到xml中...
  • ztzi321
  • ztzi321
  • 2015年05月07日 16:38
  • 2491

WPF中的TreeView如何定义模版,并绑定数据

转自:http://www.cnblogs.com/izualx/archive/2011/02/03/1949055.html   最近在用WPF做开发,项目进展的还算顺利,WPF总体来...
  • AAA123524457
  • AAA123524457
  • 2015年06月25日 14:12
  • 2934

TreeVIew控件绑定数据

TreeVIew控件可以实现在后台管理界面,实现多级菜单的样式。数据可以自己手动添加,也可以从数据库中绑定,方法如下: 数据库中的表T_Category表的样式: HTML代码: htt...
  • u011955860
  • u011955860
  • 2013年11月26日 16:59
  • 713

【C#】利用C#窗体与SQL Server的连接、Treeview制作SQL Server数据库查看器

实质上,本文的中心还是在讨论C#对SQL Server的增删改查,只是这次创新一点,配合Treeview制作SQL Server数据库查看器。 具体如下图: 根据SQL Server,Test数据...
  • yongh701
  • yongh701
  • 2015年12月31日 12:28
  • 2739

ASP.NET实现TreeView的XML数据源绑定实例代码

ASP.NET实现TreeView的XML数据源绑定实例代码   这篇文章介绍了ASP.NET实现TreeView的XML数据源绑定实例代码,有需要的朋友可以参考一下 TreeView控...
  • honglulu06
  • honglulu06
  • 2015年06月03日 14:55
  • 638

c#解析xml绑定treeview控件实现

向web端的api发送http请求,得到的结果是xml格式的节点信息,id标识节点号,
  • u014787464
  • u014787464
  • 2014年09月14日 21:58
  • 890

读取XML文件动态绑定TreeView控件练习题

题目三:读取XML文件动态绑定TreeView控件 一、语言和环境 A、实现语言  C# B、环境要求  Visual Studio 2012 二、功能要求 现使用....
  • baidu_36074048
  • baidu_36074048
  • 2017年03月12日 16:18
  • 882

treeview控件(动态数据绑定+整行选择)(WPF)(二)

上一篇中介绍了动态绑定数据库的方法,本篇中将会介绍整行选择的方法                                             ...
  • pyx61198
  • pyx61198
  • 2015年05月19日 11:46
  • 1163

根据数据库结构生成TreeView

现在大多数的方法是采用递归,但这种操作会频繁的去select数据库,降低了执行效率,稍微改动一些,效果会好不少,这里介绍一种方法,即一次性select出所有数据,然后按照ParentID排序,逐条添加...
  • u010359641
  • u010359641
  • 2014年09月17日 13:12
  • 791
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TreeView绑定数据库中的数据实例
举报原因:
原因补充:

(最多只允许输入30个字)