TreeView上绑定数据库内容

来源:互联网 发布:计算机算法设计 pdf 编辑:程序博客网 时间:2024/06/04 00:46

 TreeView绑定数据库

方法一、

string sql = string.Empty;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            TreeParentNode_Show();
        }
    }
    /// <summary>
    /// 查询所有父节点
    /// </summary>
    public void TreeParentNode_Show()
    {
        sql = "select * from TreeView where ParentId not in(select Id from TreeView)";
        DataTable dt =  GetDataSet(sql);
        foreach (DataRow dr in dt.Rows)
        {
            TreeNode tn = new TreeNode();
            tn.Text = Convert.ToString(dr["Name"]);
            tn.Value = Convert.ToString(dr["Id"]);
            tn.ImageUrl = "~/Images/CloseTree.gif";

            this.TreeView1.Nodes.Add(tn);
            int nodeId = Convert.ToInt32(dr["Id"]);

            TreeChildNodes_Show(nodeId, tn);
        }
    }


    /// <summary>
    /// 根据父节点ID查询和某一父节点有关的所有子节点
    /// </summary>
    /// <param name="nodeId"></param>
    /// <param name="tn_parent"></param>
    public void TreeChildNodes_Show(int nodeId, TreeNode tn_parent)
    {
        sql = "select * from TreeView where ParentId = " + Convert.ToInt32(nodeId);
        DataTable dt = GetDataSet(sql);
        foreach (DataRow dr in dt.Rows)
        {
            TreeNode tn_child = new TreeNode();
            tn_child.Text = Convert.ToString(dr["Name"]);
            tn_child.Value = Convert.ToString(dr["Id"]);

            tn_child.NavigateUrl = "~/" + Convert.ToString(dr["Url"]);
            tn_child.ImageUrl = "~/Images/OpenTree.gif";

            tn_parent.ChildNodes.Add(tn_child);
            int parentNodeId = Convert.ToInt32(dr["Id"]);

            TreeChildNodes_Show(parentNodeId, tn_child);
        }
    }

    public static DataTable GetDataSet(string safeSql)
    {
        SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=sa");
        DataSet ds = new DataSet();
        SqlCommand cmd = new SqlCommand(safeSql, conn);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(ds);
        return ds.Tables[0];
    }
方法二、

  protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string sDbPath = "./db_system.mdb";  //"
            string sPassword = "";
            string sDbTable = "tabItems";
            OleDbConnection oConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(sDbPath) + ";Password=" + sPassword + ";");
            OleDbDataReader oDr;

            try
            {
                oConn.Open();
                OleDbCommand oCmd = new OleDbCommand("select * from " + sDbTable, oConn);  // + " order by f_level"
                oDr = oCmd.ExecuteReader();

                //定义对象数组
                TreeNode[] myNodes = new TreeNode[100];

                //初始化对象数组
                for (int i = 0; i < myNodes.Length; i++)
                {
                    myNodes[i] = new TreeNode();
                }

                //从表中取数据
                while (oDr.Read())
                {
                    int iParentNodeId = (int)oDr["f_ParentNodeId"];
                    int iMyNodeId = (int)oDr["f_NodeId"];

                    if (iParentNodeId != 0)
                    {
                        myNodes[iMyNodeId].Text = oDr["f_name"].ToString();
                        myNodes[iMyNodeId].NavigateUrl = oDr["f_url"].ToString();
                        myNodes[iParentNodeId].ChildNodes.Add(myNodes[iMyNodeId]);
                    }
                    else
                    {
                        myNodes[iMyNodeId].Text = oDr["f_name"].ToString();
                        myNodes[iMyNodeId].SelectAction = TreeNodeSelectAction.None;
                        TreeView1.Nodes.Add(myNodes[iMyNodeId]);
                    }
                }
            }

            catch (System.Exception sqle)
            {
                sqle.ToString().Replace("/n", "<br>");
                Response.Write(sqle);
            }
            finally
            {
                oConn.Close();
            }

        }

原创粉丝点击