数据库中的记录是这样的,根据KMDM来构造个TreeView,但运行起来很慢,谁帮帮忙,帮改下代码。
kmdm                    kmmc    
----------------------- ------------- 
1001                    库存现金 
1002                    银行存款 
  100201                建行 
  100202                美元存款经常户 
  100203                工行 
1012                    其他货币资金 
  101207                保函押金 
    10120701            建行永定路支行 
    10120702            浦发银行永定路支行 
1013                    备用金 
  101301                经理办公室 
  101302                综合计划处 
  101303                财务处
一级是4位二级以下是2位,表结构不能改变
            foreach (DataRow dr in dsAllTable.Tables[0].Rows)
            {
                rootNode = new TreeNode();
                rootNode.Text = dr["kmdm"].ToString() + "-" + dr["kmmc"].ToString();
                rootNode.Name = dr["kmdm"].ToString();
                rootNode.Tag = dr["kmdm"].ToString();
                //根节点
                if (dr["kmdm"].ToString().Length == 4)
                {
                    this.treeView1.SelectedNode = null;
                }
                else//其他节点
                {
                    int intIdLength = dr["kmdm"].ToString().Length;
                    TreeNode[] tn_temp = treeView1.Nodes.Find(dr["kmdm"].ToString().Substring(0,intIdLength-2), true); //通过kmdm查找父节点
                    if (tn_temp.Length > 0)
                    {
                        treeView1.SelectedNode = tn_temp[0]; //选中查找到的节点
                    }
                }
                if (this.treeView1.SelectedNode == null)
                    this.treeView1.Nodes.Add(rootNode);
                else
                    this.treeView1.SelectedNode.Nodes.Add(rootNode);
            }