怎样用TreeView控件与数据库进行连接
产生
├-   人力资源部     
  ├-   综合科     
  │├-   办公室     
  │├-   打字室     
  ││├-       
  ││└-   打字二室   
  │└-   文印室     
  ├-   销售部   
  ├-   生产部   
  └-   财务部  
这样的效果,这此数据都在数据库中的一个表中(SQL数据库)

解决方案 »

  1.   

    看看这类似的吧,
    Create table TreeTable(
      ID int not null,
      ParentID int ,
      name varchar(20)
    )insert into TreeTable(ID,name) values(1,'根节点')
    insert into TreeTable values(2,1,'深圳仓库')
    insert into TreeTable values(3,1,'上海仓库')
    insert into TreeTable values(4,2,'a区域')
    insert into TreeTable values(5,3,'b区域')程序:在load中绑定:
     SqlConnection sql = new SqlConnection(@"Data Source=LIUFENG\SQLEXPRESS;Initial Catalog=liufeng;Integrated Security=True");
                SqlCommand cmd = new SqlCommand("Select * from TreeTable", sql);
                DataSet dss = new DataSet();
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(dss);
                DataTable dt = dss.Tables[0];
                BindTree(gvTreeView, dt);
    其中gvTreeView 是我公司重写的TreeView,你可以直接用TreeView代换protected void BindTree(gvTreeView gvTreeView , DataTable dt)
            {
                gvTreeView.Nodes.Clear();//清空树节点
                DataRow []row = dt.Select("ParentID is null");
                if (row.Length <= 0)
                {
                    return;//找不到根结点则返回
                }
                gvTreeNode root = new gvTreeNode();
                root.Text = row[0]["name"].ToString();
                root.Tag = row[0]["ID"].ToString();            
                gvTreeView.Nodes.Add(root);           
                CreateChildNode(root, dt);
                root.Expand();
            }        protected void CreateChildNode(gvTreeNode gvTreeNode, DataTable dt)
            {
                DataRow[] rows = dt.Select("ParentID ='" + gvTreeNode.Tag + "'");
                foreach(DataRow row in rows)
                {
                    gvTreeNode Node = new gvTreeNode();
                    Node.Text = row["name"].ToString();
                    Node.Tag = row["ID"].ToString();
                    gvTreeNode.Nodes.Add(Node);
                    CreateChildNode(Node, dt);
                }
            }