NetCMS网站内容管理系统

首页 » ☆ 产品服务区 ☆ » 『 Bug反馈 』 » [0509][后台]频道位置导航循环总超时
兴兴在线 - 2008-6-30 15:25:00
这里的 getCHPositionSTR(DynStr, int.Parse(drn["ParentID"].ToString()), Str, ChID)这句运行时老超时,数据库中数据等没有问题,该程序也合乎逻辑,但是总超时!希望能优化一下


文件路径:NetCMS.Publish\Label\NewsParameter.cs

public string getCHPositionSTR(string DynStr, int ID, string Str,int ChID)
        {
            if (dimmDir.Trim() != string.Empty)
            {
                dimmDir = "/" + dimmDir;
            }
            string PStr = string.Empty;
            switch (Str)
            {
                case "ChClass":
                    IDataReader dr = CommonData.DalPublish.GetCHPosition(ID, 0, ChID);
                    if (dr.Read())
                    {
                        PStr = "<a href=\"" + getCHClassURL(ChID, int.Parse(dr["isDelPoint"].ToString()), int.Parse(dr["id"].ToString()), dr["SavePath"].ToString(), dr["FileName"].ToString()) + "\">" + dr["classCName"].ToString() + "</a>" + DynStr;
                        if (dr["ParentID"].ToString() != "0")
                        {
                            PStr = getCHPositionSTR(DynStr, int.Parse(dr["ParentID"].ToString()),Str,ChID) + PStr;
                        }
                    }
                    dr.Close();
                    break;
                case "ChNews":
                    IDataReader drn = CommonData.DalPublish.GetCHPosition(ID, 1, ChID);
                    if (drn.Read())
                    {
                      PStr = "<a href=\"" + getCHClassURL(ChID, int.Parse(drn["isDelPoint"].ToString()), int.Parse(drn["id"].ToString()), drn["SavePath"].ToString(), drn["FileName"].ToString()) + "\">" + drn["classCName"].ToString() + "</a>" + DynStr;
                      if (drn["ParentID"].ToString() != "0")
                        {
                            PStr = getCHPositionSTR(DynStr, int.Parse(drn["ParentID"].ToString()), Str, ChID) + PStr;
                        }
                    }
                    PStr += "正文";
                    drn.Close();
                    break;
                case "ChSpecial":
                    IDataReader drs = CommonData.DalPublish.GetCHPosition(ID, 2, ChID);
                    if (drs.Read())
                    {
                        PStr = "<a href=\"" + getCHSpecialURL(ChID, 0, int.Parse(drs["id"].ToString()), drs["SavePath"].ToString(), drs["FileName"].ToString()) + "\">" + drs["specialCName"].ToString() + "</a>" + DynStr;
                        if (drs["ParentID"].ToString() != "0")
                        {
                            PStr = getCHPositionSTR(DynStr, int.Parse(drs["ParentID"].ToString()), Str, ChID) + PStr;
                        }
                    }
                    PStr += "专题报道";
                    drs.Close();
                    break;
                default:
                    break;
            }
            return PStr;
        }




此问题已解决.


解决方法是:

将case "ChNews":
........
  PStr = getCHPositionSTR(DynStr, int.Parse(drn["ParentID"].ToString()), Str, ChID) + PStr;
.......
红色部分改为"ChNews"

即PStr = getCHPositionSTR(DynStr, int.Parse(drn["ParentID"].ToString()), "ChNews", ChID) + PStr;
snow - 2008-6-30 15:36:00
已经收录,谢谢
9944 - 2008-7-2 19:15:00
牛人。
1
查看完整版本: [0509][后台]频道位置导航循环总超时