數據庫中有一下表格:
T_bumen(部門表) | |
bm_id | bm_name |
A001 | 人事部 |
A002 | 財務部 |
A003 | 銷售部 |
T_member(成員表) | ||
member_bm | member_name | membaer_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();
}