现在的位置: 首页 > 综合 > 正文

递归实例

2018年02月15日 ⁄ 综合 ⁄ 共 2184字 ⁄ 字号 评论关闭

  private ArrayList SecInfoOption(int id)//声明方法
        {
            ArrayList list = new ArrayList();
            SqlParameter sp_Father_ID = new SqlParameter("@PurViewFatherID", SqlDbType.Int, 4);
            sp_Father_ID.Value = id;
            using (DataSet ds = SqlHelper.ExecuteDataSet(SqlHelper.MainConnectionString, CommandType.StoredProcedure, "P_PurView_GetAllRoot", "cPur", new SqlParameter[] { sp_Father_ID }))
            {
                string tempid = "0";
                DataTable dt = ds.Tables["cPur"];
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    tempid = dt.Rows[i]["PurViewID"].ToString();
                    if (tempid == "13" || tempid == "15" || tempid == "20")
                    {
                        continue;
                    }
                    m_pv tree = new m_pv();
                    tree.PurViewID = Convert.ToInt32(dt.Rows[i]["PurViewID"].ToString());
                    tree.PurViewFatherID = Convert.ToInt32(dt.Rows[i]["PurViewFatherID"].ToString());
                    if (i == (dt.Rows.Count - 1))
                    {
                        tree.Name = this.strLine + "└" + dt.Rows[i]["Name"].ToString();
                    }
                    else
                    {
                        tree.Name = this.strLine + "├" + dt.Rows[i]["Name"].ToString();
                    }
                    tree.LinkAddress = dt.Rows[i]["LinkAddress"].ToString();
                    list.Add(tree);
                    this.strLine = this.strLine + "  ";
                    ArrayList lsd = this.SecInfoOption(Convert.ToInt32(dt.Rows[i]["PurViewID"].ToString()));
                    foreach (m_pv tp in lsd)
                    {
                        m_pv tempP = new m_pv();
                        tempP.PurViewID = tp.PurViewID;
                        tempP.PurViewFatherID = tp.PurViewFatherID;
                        tempP.Name = tp.Name;
                        tempP.RoleID = tp.RoleID;
                        tempP.LinkAddress = tp.LinkAddress;
                        tempP.CityID = tp.CityID;
                        list.Add(tempP);
                    }
                    this.strLine = this.strLine.Substring(0, this.strLine.Length - 2);
                }
                dt.Dispose();
                ds.Dispose();
            }
            return list;
        }

抱歉!评论已关闭.