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

        }

    }

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

 

Part 13:Cocos2d-x开发实战-Cocos2d-x中使用的数据容器类

-
  • 1970年01月01日 08:00

一、WinForm中TreeView数据绑定

原问题贴地址:http://topic.csdn.net/u/20110621/17/7bad3c94-2761-4d39-84fa-db95b8e66977.html   部门表 bumenI...
  • taomanman
  • taomanman
  • 2011-06-22 15:27:00
  • 7738

C# winform treeView控件的使用绑定数据库

  • 2010年06月04日 09:14
  • 37KB
  • 下载

WPF中Treeview绑定数据库数据

WPF遍历所有的节点其实和Winform的一样,都是从跟级开始读:这个是我写的一个类,明天在写出来添加删除的来:class BindTreeView { private Dat...
  • withdreams
  • withdreams
  • 2012-04-24 21:36:25
  • 6563

C# TreeView从数据库绑定数据

封装成一个函数,方便直接调用 //绑定TrreView private void InitModuleTree(DataTable dt) { ...
  • tingzhiyi
  • tingzhiyi
  • 2017-08-15 16:27:42
  • 2023

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

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

wpf /treeview数据库绑定

  • 2010年05月06日 11:14
  • 1017KB
  • 下载

WPF新手之如何将数据绑定到TreeView

WPF 数据 绑定 模板 TreeView ObservableCollection
  • thy38
  • thy38
  • 2010-09-16 17:01:00
  • 13318

ASP.NET2.0(C#)TreeView绑定SQL数据库、以及对其进行添加修改删除

  • 2007年11月23日 12:17
  • 1.25MB
  • 下载

Treeview绑定数据库

1.建立一个表,表中有三个字段,分别为id、父id、名称,然后往里面插入些数据 2.注意:如果没有父id则是空(NULL),什么东西也不要填写,必须是NULL 3 .aspx 页面上要添加一个Tre...
  • cnceohjm
  • cnceohjm
  • 2012-07-19 10:22:41
  • 3234
收藏助手
不良信息举报
您举报文章:TreeView绑定数据库中的数据实例
举报原因:
原因补充:

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