id       name      pid
权限编号 权限名称  父级ID  一级的pid是0
求一个读取所有权限效率高点的代码。  

解决方案 »

  1.   

    http://topic.csdn.net/u/20100608/18/c6751e35-d378-42c8-8569-751d9c5ce2a7.html
      

  2.   

    其实也就是个递归方法。你要把它显示出来 就类似于加载树吧代码  public void bind()
            {
                //取出所有数据
                SqlDataAdapter adp = new SqlDataAdapter("select * from table", connString);
                DataTable dtData = new DataTable();
                adp.Fill(dtData);
                TreeView tv;//树控件
                tv.Nodes.Clear();
                // 获得第一级数据
                DataRow[] drRoot = dtData.Select("pid=0");//父节点ID为0。
                foreach (DataRow dr in drRoot)
                {
                    TreeNode tn = new TreeNode();
                    tn.Text = dr["name "].ToString();
                    AppendChild(tn, dr["id"].ToString());
                    tv.Nodes.Add(tn);
                }
            }
            public void AppendChild(TreeNode tnParent, string fid)
            {
                //这里的父ID 就是上级的子ID
                DataRow[] drs = dtData.Select("pid='" + fid + "'");
                foreach (DataRow dr in drs)
                {
                    TreeNode tn = new TreeNode();
                    tn.Text = dr["name"].ToString();
                    AppendChild(tn, dr["id"].ToString());//递归下去
                    tnParent.ChildNodes.Add(tn);
                }
            }绑定树的。
      

  3.   

    http://topic.csdn.net/u/20110303/11/660ffcbb-74ac-406f-82cb-1bfe6ee86111.html