合并DataSet 建立treeview多级菜单

该博客介绍了如何从数据库获取数据并利用DataSet建立一个多级TreeView菜单。通过查询T_bumen和T_member两个表格,创建了数据集关系,并遍历数据以生成部门节点及其对应的成员节点,最终展开根节点显示完整的公司结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库中有一下表格:

T_bumen(部门表)
bm_idbm_name
A001人事部
A002财务部
A003销售部

T_member(成员表)
member_bmmember_namemembaer_card
A001张三201301
A003李四201302
A003王五201303

就是做成下图的效果

实现代码如下:

public DataSet GetTreeViewData(){     //获取treeview的数据集

string sql_bm="select bm_id,bm_name from T_bumen ";

string sql_mem="select member_bm,member_name from T_member";

SqlDataAdapter da_bm=new SqlDataAdapter(sql_bm,connection);

sqlDataAdapter da_mem=new SqlDataAdapter(sql_mem,connection);


DataSet ds=new DataSet();

da_bm.Fill("ds,"BuMen"");

da_mem.Fill(ds,“Member”);


ds.Relations.Add("BuMen_Member",ds.Tables["BuMen"].Columns["bm_id"],ds.Tables["Member"].Columns["member_bm"]);

return ds;

}


public void BindTree(){    //建立多级树

treeView1.Nodes.Clear();

DataSet ds_dataset=GetTreeViewData();

TreeNode allNode=new TreeNode("公司结构");

allNode.Name="node1";

this.treeView1.Nodes.Add(allNode);

foreach(DataRow bumenRow in ds_dataset.Tables["BuMen"].Rows){

TreeNode bumenNode =new TreeNode(bumenRow["bm_name"].ToString());

bumenNode.Text=bumenRow["bm_name"].ToString();

bumenNode.Name="node2";

bumenNode.Tag=bumenRow["bm_id"].ToString();

allNode.Nodes.Add(bumenNode);


foreach(DataRow memberRow in bumenRow.GetChilRows("BuMen_Member")){

TreeNode memberNode=new TreeNode(bumenRow["member_name"].ToString());

memberNode.Text=memberRow["member_name"].ToString();

memberNode.Name=memberRow["member_nam"].ToString();

bumenNode.Nodes.Add(memberNode);

}

}

this.treeView1.Nodes[0].Expand();

}













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值