大家帮帮我:一个把数据库数据调到树控件的问题

yangkang0752 2004-05-03 02:20:37
我有一张表名(班级管理)的表,其中有字段为(系别,年级,班级)
我想先把系别的数据读到树中作为节点(数据不能重复),然后把在系节点下添加属于该系的年级子节点(数据不能重复),最后在年级节点下添加属于该年级的班级数据(数据不能重复)
假设表如下:
"系别", "年级", "班级",
"计算机科学系", "02", "2",
"中文系 "02", "3",
"计算机科学系 "01", "3",
"计算机科学系 "02", "3",
"中文系 "01", "2",
"中文系 "02", "5",
"数学系 "02", "3",
"数学系 "01", "6",
...全文
94 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangkang0752 2004-05-07
  • 打赏
  • 举报
回复
谢谢大家,我刚刚实现了,不过,我还是会根据相应的回复来给你们分的.虽然分是少了点,请大家谅解啦,我刚上来报到,很穷的.
dongyp511 2004-05-06
  • 打赏
  • 举报
回复
呵呵,用一个函数就可以了呀。自定义一个treenode,继承treenode,就多了一个id(表示父亲的接点在数据库中对应字段的唯一id)
先把你的根目录读出,把id写入自定义的属性,最后读出该接点的对应id下的子接点。

给一点思路。
widespread 2004-05-06
  • 打赏
  • 举报
回复
我以前写过一个,这个要通过递归的方法,具体的过程则要根据你自己的数据库内容写:
1。首先,把数据库中的内容内容封装到类里面,并行成一个树型结构
如:
enum type{depart, grade,ban}; //分别代表系别,年级,班级
public class DataNode
{
public ArrayList array; //存放其子节点
public int count; //返回其子节点的数目
public type cate; //该结点类型
public string name;
}
从数据库中读取数据时,根据其你自己的特点构建树结构,其中叶子节点
count = 0
此步完成后,可以有一个root节点,通过其可以访问到所有的数据
2. 根据上面建立的树结构,递归向TreeView添加新节点
TreeNode node = new TreeNode();
treeView1.Nodes.Add(node);
InitlTree(node, root);
函数代码如下:
public void InitlTree(TreeNode node, DataNode current)
{
node.Text = current.name;
for(int i =0; i<current.array.Count; i++)
{
TreeNode m_node = new TreeNode();
node.Nodes.Add(m_node);
InitlTree(m_node, (DataNode)current.array[i]);
}
}

其大概流程就是这样,由于这个与你数据库中数据及下一步如何处理树有关,所以详细过程可以自己添加。
penniless 2004-05-06
  • 打赏
  • 举报
回复
我刚做过一个类似的

不过你的这个表建得好像不是很适合生成你要求的树型结构把

只能是一步一步查询出结果然后递归吧。




yangkang0752 2004-05-05
  • 打赏
  • 举报
回复
晕,怎么没有人来呀?
其实我自己也想出来了,只是算法复杂,要写很多代码,我想写二三个函数,让它动态生成,只是无论用哪种算法,都是有一点点的错误,哎
alfredbogard 2004-05-03
  • 打赏
  • 举报
回复
TreeView的问题,我也想知道,请教回答。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧