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;
}
{
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
第三次就直接返回这个值了,因为已经到了顶级菜单了