比如 :  首页>AAA>BBB  这种格式的
不要给我存储过程,我要一个递归函数create table BigClassStru(BigClassId int,PBigClassId int,BigClassName nvarchar(50))
这是表
比如 
BigClassId  BigClassName  PBigClassId
1             首页              0
2             AAA             1
3             BBB             2
也就是说BBB的父节点是AAA, 因为BBB的PBigClassID = AAA的BigClassID 
以此类推然后这个递归函数怎么写呢?我要输出的结果是   首页>AAA>BBB    传一个参数进去(BigClassId)谢谢了

解决方案 »

  1.   

        private string seek(string id)
        {
            int parent=0;
            string parentname="";
            //根据id开数据库查找其父接点的id并赋值到parent,名称赋值到parentname
            if(parent==0)
            {
                return parentname;
            }
            else
            {
                return seek(parent) +">"+ parentname;
            }
        }
      

  2.   

    急啊急啊HELPME HELP ME!!!!!!!!!!!!!!!!!!!!!
      

  3.   

    急啊急啊HELPME HELP ME!!!!!!!!!!!!!!!!!!!!!public string GetPer(int BigClassId)
        {
            //BigClassId = 15;
            int parent = 0;
            string parentname = "";
            string sql = "select BigClassId,BigClassName,PBigClassId from BigClassStru where BigClassId='"+BigClassId+"'";
            SqlConnection con = new SqlConnection(ConnectionStr.ConnectionString);
            SqlCommand cmd = new SqlCommand(sql, con);
            DataTable dt = new DataTable();
            //根据id开数据库查找其父接点的id并赋值到parent,名称赋值到parentname 
            if(dt.Rows[0][2].ToString() == "0")
            //if (parent == 0)
            {
                return dt.Rows[0][1].ToString();
            }
            else
            {
                return GetPer(int.Parse(dt.Rows[0][2].ToString())) + ">" + dt.Rows[0][1].ToString();
            }
        } 
    看看问题在哪里
      

  4.   

    public string GetPer(int BigClassId)
        {
            
            int parent = 0;
            string parentname = "";
            string sql = "select BigClassId,BigClassName,PBigClassId from BigClassStru where BigClassId='"+BigClassId+"'";
            SqlConnection con = new SqlConnection(ConnectionStr.ConnectionString);
            SqlCommand cmd = new SqlCommand(sql, con);
          
            SqlDataAdapter adp = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            adp.Fill(dt);
            //con.Open();
            //cmd.ExecuteNonQuery(); 
            //根据id开数据库查找其父接点的id并赋值到parent,名称赋值到parentname 
            //return dt.Rows[0][1].ToString();
             if (dt.Rows[0][2].ToString() == "0")
            {
                return dt.Rows[0][1].ToString();
            }
            else
            {
                return GetPer(int.Parse(dt.Rows[0][2].ToString())) + ">" + dt.Rows[0][1].ToString();
            }
        }