使用treeview控件创建树形结构
数据库结构设计
本文使用的是ms-sqlserver2000,涉及到以下两个数据库表:
表名
说明
表名
说明
mainbords
主版编号表
subborads
子版表
各表中的字段如下: mainboards中的字段设置
字段
类型
说明
mainid
整型
索引号
mainname
字符型
主版名称
subboards中的字段设置:
subboards中的字段设置:
字段
类型
说明
subid
整型
索引号
mainid
整型
对应的主版编号
subname
字符型
子版名称
字段
类型
说明
subid
整型
索引号
mainid
整型
对应的主版编号
subname
字符型
子版名称
3.2 创建树形结构:
3.2 创建树形结构:
3.2 创建树形结构:
要实现树形结构,我们首先必须添加主节点,也就是mainboards表。
先连接数据库:
sqlconnection cn = new sqlconnection();
//初始化连接字符串,请根据实际情况修改
cn.connectionstring= "data source=localhost;initial catalog=bbs;persist security info=false;user id=sa;password=sa;";
cn.open();
sqldataadapter adp = new sqldataadapter("select * from mainboards",cn);
dataset ds=new dataset();
adp.fill(ds);
添加主节点
int nummain=ds.tables[0].rows.count;
for(int i=0;i<nummain;i++)
{
treenode node=new treenode() ;
node.text =ds.tables[0].rows[i][1].tostring();
tree.nodes.add(node);
node.expanded=true;
int mainid=convert.toint32(ds2.tables[0].rows[i][0].tostring());
//调用addsubtree方法添加子节点
addsubtree(mainid,node);
addsubtree方法
public void addsubtree(int mainid,treenode pnode)
{ //读取subborads表中的内容
sqlconnection con = new sqlconnection();
con.connectionstring= "data source=localhost;initial catalog=bbs;persist security info=false;user id=sa;password=sa;";
con.open();
sqldataadapter adp1 = new sqldataadapter("select * from subboards where mainid='"+mainid+"'",con);
dataset ds1=new dataset();
adp1.fill(ds1);
int numsub=ds1.tables[0].rows.count;
//在给定的主节点下添加子节点
for(int i=0;i<numsub;i++)
{
treenode node=new treenode() ;
node.text =ds1.tables[0].rows[i][2].tostring();
pnode.nodes.add(node);
//在此设置节点点击以后定向到页面:
node.navigateurl="display.aspx?id=";
node.expanded=false;} }
新闻热点
疑难解答
图片精选