#region   得到树形根目录
        public void get_directory()
        {
            try
            {                tree_list.Nodes.Clear();
                DataTable dt = organize.select_ORG();//调用SQL语句
                DataRow[] rows = dt.Select("ParentOrgid=0");//添加SQL条件
                foreach (DataRow dr in rows)//循环赋值给DataRow
                {
                    TreeNode node = new TreeNode();
                    node.Tag = dr;
                    node.Text = dr["Orgname"].ToString();
                    tree_list.Nodes.Add(node);
                    get_subcatalog(node);
                }
                tree_list.ExpandAll();
            }
            catch (Exception ex)
            {
                MessageBox.Show("获取父节点出错" + ex.Message, "提示信息");
            }        }
        #endregion        #region   得到树形子目录
        public void get_subcatalog(TreeNode fnode)
        {
            try
            {
                DataTable dt = organize.select_ORG();
                DataRow dr = (DataRow)fnode.Tag;//获取根节点的ID
                int f_id = (int)dr["Orgid"];
                DataRow[] rows = dt.Select("ParentOrgid=" + f_id);//SQL语句加入条件进行查询
                if (rows.Length == 0)//集合是否有值
                {
                    return;
                }
                foreach (DataRow Drows in rows)
                {
                    TreeNode node = new TreeNode();
                    node.Tag = Drows;
                    node.Text = Drows["Orgname"].ToString();
                    //添加子节点              
                    fnode.Nodes.Add(node);
                    get_Personnel(node);
                }
            }
            catch (Exception ex)
            {                MessageBox.Show("获取子节点出错" + ex.Message, "提示信息");
            }        }
        #endregion        public void get_Personnel(TreeNode fnode)
        {
            try
            {
                DataTable dt = person.select_ORG();
                DataRow dr = (DataRow)fnode.Tag;//获取根节点的ID
                int f_id = (int)dr["Orgid"];
                DataRow[] rows = dt.Select("Orgid=" + f_id);//SQL语句加入条件进行查询
                if (rows.Length == 0)//集合是否有值
                {
                    return;
                }
                foreach (DataRow Drows in rows)
                {
                    TreeNode node = new TreeNode();
                    node.Tag = Drows;
                    node.Text = Drows["Personname"].ToString();
                    fnode.Nodes.Add(node);
                    get_Personnel(node);
                }
            }
            catch (Exception ex)
            {                MessageBox.Show("获取人员姓名出错" + ex.Message, "提示信息");
            }
        }
为得到每机构下的人员  机构和人员属于主外键关系  目前可以得到机构的无限极,但是人员等不到 谢谢。