社区
C#
帖子详情
treeview和数据库
chester1
2006-06-13 10:36:27
现在有一个表,结构如下:
trid trname trparentid
1 中国 0
2 韩国 0
3 北京 1
4 汉城 2
5 重庆 1
6 釜山 2
怎样利用treeview控件将数据读入并实现
中国
北京
重庆
韩国
汉城
釜山
这样的结构
...全文
243
16
打赏
收藏
treeview和数据库
现在有一个表,结构如下: trid trname trparentid 1 中国 0 2 韩国 0 3 北京 1 4 汉城 2 5 重庆 1 6 釜山 2 怎样利用treeview控件将数据读入并实现 中国 北京 重庆 韩国 汉城 釜山 这样的结构
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yiming0755
2006-06-17
打赏
举报
回复
要沉了
yiming0755
2006-06-14
打赏
举报
回复
下面是不加那个根的代码:更加灵活:
void PopulateTreeView(DataTable dt)
{
//dt为数据库中没有上级接点的接点集合,也就是第一级接点,(select * from table where parentID=null)
foreach(DataRow row in table.Rows)
{
TreeNode n=new TreeNode();
n.Text=row["nodeName"].Tostring();
n.ID=row[0]["node_id"].ToString();
this.TreeView1.Nodes.Add(n);
AddFolders(n.ID,n); //这个函数不变。
}
}
yiming0755
2006-06-14
打赏
举报
回复
首先我推荐你在数据库的第一行加一个根,那么先获取这个根,然后对他递归。
这样做你比较容易理解。如果没有这个根也是可以的,不过算法比这个复杂,不利于你理解。
void PopulateTreeView(DataTable dt) //dt为数据库全部数据
{
TreeView1.Nodes.Clear();
TreeNode n=new TreeNode();
n.Text=dt.Rows[0]["nodename"].ToString();
n.ID=dt.Rows[0]["node_id"].ToString();
//把第一个节 点,即根接点加到树中。
this.TreeView1.Nodes.Add(n);
AddFolders(n.ID,n);
}
/// <summary>
/// 添加子节点
/// </summary>
/// <param name="id"></param>
/// <param name="no"></param>
public void AddFolders(string id,TreeNode no)
{
//getchildNode()传入一个节点ID,获取它的下级节点
DataTable table=this.getchildNode(System.Convert.ToInt32(id));
foreach(DataRow row in table.Rows)
{
TreeNode n=new TreeNode();
n.Text=row["nodename"].ToString();
n.ID=row["node_id"].ToString();
no.Nodes.Add(n);
this.AddFolders(n.ID,n);
}
}
skyline81
2006-06-14
打赏
举报
回复
按照 rfq(任凤泉) 的写写看
LixingTie
2006-06-14
打赏
举报
回复
呵呵,也是!!
skyline81
2006-06-14
打赏
举报
回复
START WITH trname IN ( )
CONNECT BY PRIOR trid = trparentid
ORDER BY trid
ou108
2006-06-14
打赏
举报
回复
呵呵
LixingTie(生铁)
要是有三級四級五級呢
暈
很定是要定義級別的
一級一級加
Knight94
2006-06-14
打赏
举报
回复
参看
http://blog.csdn.net/knight94/archive/2006/05/01/704281.aspx
LixingTie
2006-06-14
打赏
举报
回复
treeView.Nodes.Clear();
table = dataset.Tables["表名"];
foreach (DataRow oneRow in table.Rows)
{
string text = oneRow["trname"].ToString();
string ID = oneRow["trparentid"].ToString();
TreeNode node = new TreeNode(text);
node.Name = text;
if(ID=="0")
{
treeView.Nodes.Add(node);
}
else if(ID=="1")
{
treeView.Nodes["中国"].Nodes.Add(node);
}
else if(ID=="2")
{
treeView.Nodes["韩国"].Nodes.Add(node);
}
}
treeView.ExpandAll();
代码我没测试过,不过思路大概如此,你自己看着办
rfq
2006-06-14
打赏
举报
回复
没问题,
ArrayList a=distinct parent id
foreach(item in a)
{
生成节点(递归);
}
zhgroup
2006-06-14
打赏
举报
回复
表结构有问题
winner2050
2006-06-14
打赏
举报
回复
我晕
chester1
2006-06-14
打赏
举报
回复
求人不如求自己,算了,自己想办法解决
amandag
2006-06-13
打赏
举报
回复
up
chester1
2006-06-13
打赏
举报
回复
帮忙吧!大虾们
chester1
2006-06-13
打赏
举报
回复
自己顶一个先
专门用来操作
Treeview
和
数据库
专门用来操作
Treeview
和
数据库
TreeView
与
数据库
关联
TreeView
与
数据库
关联,实现类似DB-
TreeView
的效果
TreeView
和
数据库
联动演示
用
数据库
的数据显示成
TreeView
树形结构,能一次读取全部表单数据。
Treeview
与
数据库
的联合使用实例
我写了一个类,专门用来操作
Treeview
和
数据库
,通过
数据库
中的数据自动添加到
Treeview
控件中,不过数据控件用的是ADO组件,另外
数据库
中存放
Treeview
节点数据表的结构位:ID:integer;PID:Integer;Caption:string;...
三种
treeview
结合
数据库
的使用
三种不同的
treeview
与
数据库
结合的示例
C#
110,536
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章