合併DataSet 建立treeview多級菜單

數據庫中有一下表格:

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();

}













發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章