龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

asp.net使用datatable实现无限级分类

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
关键点:datatable.select方法 速度应该比其它递归读取数据库要快. static string _TreeList = string.Empty; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { SqlConnection conn = SqlHelper.dbconn()

    关键点:datatable.select方法

     速度应该比其它递归读取数据库要快.

    static string _TreeList = string.Empty;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            SqlConnection conn = SqlHelper.dbconn();
            try
            {
                conn.Open();
               
                DataTable dt = SqlHelper.ExecuteDataTable(conn, "select * from DyjGroup");

                DateTime startTime = System.DateTime.Now;
                string _class = string.Empty;
                _class = "<table>";
                _class += this.Tree(dt, 0);
                _class += "</table>";
                show.Text = _class;

                _TreeList = "";

                DateTime endTime = System.DateTime.Now;

                Response.Write(endTime - startTime);

            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
            finally
            {
                conn.Close();
            }
        }
    }

    protected string Tree(DataTable dt, int _condition)
    {
        DataRow[] _TreeDr = dt.Select("[parent]="+_condition);
        for (int i = 0; i < _TreeDr.Length; i++)
        {
            _TreeList += "<tr><td>" + MakeFelgefu(_condition) + _TreeDr[i]["GroupName"].ToString()+"</td></tr>";
            Tree(dt, (int)_TreeDr[i]["GroupId"]);//
        }
        return _TreeList;
    }

    /// <summary>
    /// Make分隔符
    /// </summary>
    /// <param name="count"></param>
    /// <returns></returns>
    private string MakeFelgefu(int count)
    {
        string Returnwords = string.Empty;
        if (count == 0)
        {
            Returnwords = "";
        }

        else
        {
            Returnwords = ("├").PadLeft(count, ' ');
        }
        return Returnwords;
    }

精彩图集

赞助商链接