日期:2014-05-20  浏览次数:20671 次

递归显示问题?



后台代码:
        private   string   className   =   " ";
        public     string   ClassIDToName(string   id)
        {
       
   
                string   sql   =   "select   classname,parentid   from   materialclass   where   id= ' "   +   id   +   " ' ";
                SqlDataReader   reader   =   DbHelperSQL.ExecuteReader(sql);

                if   (reader.Read())
                {
                        className   +=   reader.GetString(0)   +   "/ ";
                        string   parentid   =   reader[ "parentid "].ToString();
                        reader.Close();
                        if   (parentid   !=   "0 ")
                        {
                                ClassIDToName(parentid);
                        }


                }
                return   className;
        }
前台代码:
    <ItemTemplate>
                                                                        <asp:Label   ID= "Label1 "   runat= "server "   Text= ' <%#   ClassIDToName(Convert.ToString(Eval( "classid ")))   %> '> </asp:Label>
                                                                </ItemTemplate>
类别名称
11//22//33
11//22//33/11/22//33
问题是   gridview   显示的时候   重复显示了?


------解决方案--------------------
其实这种方法反复读数据库,效率很低的
可以考虑在数据库里写个存储过程计算分类的ClassName