从数据库中得到数据,建立树形结构
2013-04-13 22:04
316 查看
数据库设计
首先,我们在SQL SERVER 2000里建立一个表tbTree,表的结构设计如下:
列名 数据类型 描述 长度 主键
ID Int 节点编号 4 是
ParentID Int 父节点编号 4
ConText Nvarchar 我们要显示的节点内容 50
在SQL SERVER 2000中建表的脚本:
后台代码
首先,我们在SQL SERVER 2000里建立一个表tbTree,表的结构设计如下:
列名 数据类型 描述 长度 主键
ID Int 节点编号 4 是
ParentID Int 父节点编号 4
ConText Nvarchar 我们要显示的节点内容 50
在SQL SERVER 2000中建表的脚本:
后台代码
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using Microsoft.Web.UI.WebControls; using System.Data.SqlClient; namespace TreeCS { /// /// WebForm1 的摘要说明 /// public class WebForm1 : System.Web.UI.Page { protected Microsoft.Web.UI.WebControls.TreeView TreeView1; private void Page_Load(object sender, System.EventArgs e) { // 定义数据库连接 SqlConnection CN = new SqlConnection(); try { //初始化连接字符串 CN.ConnectionString= "data source=pmserver;initial catalog=Benchmark;persist security info=False;user id=sa;Password=sa;"; CN.Open(); SqlDataAdapter adp = new SqlDataAdapter("select * from tbTree",CN); DataSet ds=new DataSet(); adp.Fill(ds); this.ViewState["ds"]=ds; } catch (Exception ex) { Session["Error"] = ex.ToString(); Response.Redirect("error.aspx"); //̀跳转程序的公共错误处理页面 } finally { CN.Close(); } //调用递归函数,完成树形结构的生成 AddTree(0, (TreeNode)null); } //递归添加树的节点 public void AddTree(int ParentID,TreeNode pNode) { DataSet ds=(DataSet) this.ViewState["ds"]; DataView dvTree = new DataView(ds.Tables[0]); //过滤ParentID,得到当前的所有子节点 dvTree.RowFilter = "[PARENTID] = " + ParentID; foreach(DataRowView Row in dvTree) { TreeNode Node=new TreeNode() ; if(pNode == null) { //添加根节点 Node.Text = Row["ConText"].ToString(); TreeView1.Nodes.Add(Node); Node.Expanded=true; AddTree(Int32.Parse(Row["ID"].ToString()), Node); //再次递归 } else { //̀添加当前节点的子节点 Node.Text = Row["ConText"].ToString(); pNode.Nodes.Add(Node); Node.Expanded = true; AddTree(Int32.Parse(Row["ID"].ToString()),Node); //再次递归 } } } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> ///设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容 /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion } }
相关文章推荐
- 数据库Oracle、Sql Server单表树形结构数据查询语句
- EasyUI_tree根据数据库数据非迭代生成树形结构
- EasyUI_tree根据数据库数据非迭代生成树形结构
- 数据库存储树形结构的数据
- 行业类别-树形结构(数据字典、参数化,数据库)
- Java编程:将具有父子关系的数据库表数据转换为树形结构,支持无限层级
- EasyUI_tree根据数据库数据非迭代生成树形结构
- 数据库存储树形结构的数据
- JSON复杂数据处理之Json树形结构数据转Java对象并存储到数据库的实现
- 使用递归算法结合数据库解析成java树形结构 1、准备表结构及对应的表数据 a、表结构: create table TB_TREE ( CID NUMBER not null, CNAME VAR
- 将数据库的树形结构的数据,转成JSON,用于树形列表显示
- java代码删除数据库中树形结构数据
- EasyUI_tree根据数据库数据生成树形结构JSON格式
- 树形结构的数据存储和数据库表设计
- 数据库存储树形结构的数据
- Atitit.各种 数据类型 ( 树形结构,表形数据 ) 的结构与存储数据库 attilax 总结
- 树形结构的数据存储与数据库表设计
- Atitit.各种 数据类型 ( 树形结构,表形数据 ) 的结构与存储数据库 attilax 总结
- 树形结构的数据如何保存到关系型的数据库
- 常见数据库设计(4)——树形结构数据