首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

return 之后,还要走UpCBZX(),为什么,帮小弟我看看吧!

2013-03-28 
return之后,还要走UpCBZX(),为什么,各位大哥帮我看看吧!!private string UpCBZX(string code, string name

return 之后,还要走UpCBZX(),为什么,各位大哥帮我看看吧!!
private string UpCBZX(string code, string name)
    {
        string UPName = name;
        DBClass oraDb = null;
        try
        {
            string connStr = System.Configuration.ConfigurationManager.AppSettings["BPMYW"];//连接字符串
            oraDb = new DBClass(connStr);
            string sqlStr = "select * from Public_CbzxItem where cfeecode='" + code + "' order by cfeeorder";
            DataTable tbl = oraDb.GetDataSet(sqlStr).Tables[0];
            if (tbl.Rows.Count > 0)
            {
                UPName = tbl.Rows[0]["cFeeName"].ToString() + "-->" + name;

                if (tbl.Rows[0]["cFeeCode"].ToString() != "0")
                {
                    UpCBZX(tbl.Rows[0]["cUPFeeCode"].ToString(), UPName);
                }
                //return UPName;
            }
            oraDb.clear();

        }
        catch (Exception ee)
        {
            if (oraDb != null && oraDb.Connection.State == System.Data.ConnectionState.Open)
            {
                oraDb.clear();//关闭连接;

            }
        }
        return UPName;
    }
[解决办法]


 if (tbl.Rows[0]["cFeeCode"].ToString() != "0")
                {
                    UpCBZX(tbl.Rows[0]["cUPFeeCode"].ToString(), UPName);
                }

这一段的意义是? 返回值也没有用到 =。= 

不是
UPName=UpCBZX(tbl.Rows[0]["cUPFeeCode"].ToString(), UPName);
或 
UpCBZX(tbl.Rows[0]["cUPFeeCode"].ToString(), ref UPName);




[解决办法]
这个是递归操作了,类似找一个名字的子分类的顶级分类
你分析代码就可以明白
假设name = Nokia

第一次执行的结果可能是:
手机->Nokia
第二次执行的结果可能是
通讯->手机->Nokia
第三次就直接返回这个值了,因为已经到了顶级菜单了

热点排行