构造好了树型数据就够了阿,接着treeview加载跟节点,跟节点再加子节点

解决方案 »

  1.   

    主键 属性名 类型 长度 可空 属性含义
    是 Nodeid int 6 否 节点ID
    Parentid int 6 否 父节点ID
    Nodename char 50 否 节点名称
    Address char 80 可 链接地址
      

  2.   

    DataSet ds=new DataSet();
                  private void Form1_Load(object sender, System.EventArgs e)
                  {
                         // 定义数据库连接
                         SqlConnection CN = new SqlConnection();
                         try 
                         {
                                //初始化连接字符串
                                CN.ConnectionString= "data source=pmserver;initial catalog=Bench;persist security info=False;user id=sa;Password=sa;";
                                CN.Open();
                                //添加命令,从数据库中得到数据
                                SqlCommand sqlCmd= new SqlCommand();
                                sqlCmd.Connection = CN;
                                sqlCmd.CommandText = "select * from tbTree";
                                sqlCmd.CommandType = CommandType.Text ;
                                SqlDataAdapter adp = new SqlDataAdapter(sqlCmd);
                                adp.Fill(ds);
                         }
                         catch (Exception ex)
                         {
                                throw (ex);   
                         }
                         finally 
                         {
                                CN.Close();
                         }
                         //调用递归函数,完成树形结构的生成
                         AddTree(0, (TreeNode)null);
                  }
     
                  // 递归添加树的节点
                  public void AddTree(int ParentID,TreeNode pNode) 
                  {
                         DataView dvTree = new DataView(ds.Tables[0]);
                         //过滤ParentID,得到当前的所有子节点
                         dvTree.RowFilter =  "[PARENTID] = " + ParentID;
                         foreach(DataRowView Row in dvTree) 
                         {
                                if(pNode == null) 
                                {    //'̀添加根节点
                                       TreeNode Node = treeView1.Nodes.Add(Row["ConText"].ToString());
                                       AddTree(Int32.Parse(Row["ID"].ToString()),Node);    //再次递归
                                } 
                                else 
                                {   //添加当前节点的子节点
                                       TreeNode Node =  pNode.Nodes.Add(Row["ConText"].ToString());
                                       AddTree(Int32.Parse(Row["ID"].ToString()),Node);     //再次递归
                                }
                         }                   
                  }            
     
      

  3.   

    我的意思是可否由业务逻辑构造好TreeNode.然后直接交给treeview显示
      

  4.   

    asp.net中的treeview控件是可以和xml文件(指定的格式)绑在一起,winform中不知道有没有这个功能,一般都是通过递归来实现treeview的生成。