原問題貼地址:http://topic.csdn.net/u/20110621/17/7bad3c94-2761-4d39-84fa-db95b8e66977.html
部門表
bumenId 部門
1 產品研發部
2 工程項目部
3 行政部
4 市場部
使用者表
userId 使用者 bumenId
1 張三 1
2 李四 1
3 王五 2
4 餘六 2
5 田七 3
6 朱八 3
7 葉九 4
8 姚個 4
using System;<br />using System.Collections.Generic;<br />using System.ComponentModel;<br />using System.Data;<br />using System.Drawing;<br />using System.Linq;<br />using System.Text;<br />using System.Windows.Forms;<br />using System.Data.SqlClient;<br />using System.Data;<br />namespace CSDNDemoTest<br />{<br /> public partial class Form1 : Form<br /> {<br /> public Form1()<br /> {<br /> InitializeComponent();<br /> }<br /> private void Form1_Load(object sender, EventArgs e)<br /> {<br /> DataSet ds_Department = getDataSet("部門表");<br /> DataSet ds_Employees = getDataSet("使用者表");<br /> foreach (DataRow dr in ds_Department.Tables[0].Rows)<br /> {<br /> //部門表綁定,作為一級層次<br /> TreeNode tn_origine = new TreeNode();<br /> tn_origine.Text = dr["部門"].ToString();<br /> this.treeView1.Nodes.Add(tn_origine);<br /> //使用者表綁定<br /> DataRow[] dr_arr = ds_Employees.Tables[0].Select("bumenId="+int.Parse(dr["bumenId"].ToString()));<br /> if (dr_arr.Length > 0)<br /> {<br /> foreach (DataRow dr_sub in dr_arr)<br /> {<br /> TreeNode tn_sub = new TreeNode();<br /> tn_sub.Text = dr_sub["使用者"].ToString();<br /> tn_origine.Nodes.Add(tn_sub);<br /> }<br /> }<br /> }<br /> }<br /> //擷取資料集<br /> public DataSet getDataSet(string tableName)<br /> {<br /> DataSet ds = new DataSet();<br /> using (SqlConnection con = new SqlConnection("Data Source=localhost;uid=sa;pwd=saiyang;Database=CSDN"))<br /> {<br /> con.Open();<br /> string strSQL = "select * from "+tableName;<br /> using (SqlDataAdapter sda = new SqlDataAdapter(strSQL, con))<br /> {<br /> sda.Fill(ds);<br /> }<br /> }<br /> return ds;<br /> }<br /> }<br />}<br />
輸出結果如下:
二、另一種方式,資料表結果如:
//實現多級目錄 public string rootFT_Id = "00";//根節點Tag // 添加根節點 private void AddRootCompany() { DataSet ds = new DataSet(); using (SqlConnection con = new SqlConnection("Data Source=localhost;uid=sa;pwd=;Database=TW_KJ")) { con.Open(); string strSQL = "select * from TB_Personnel_Type where FT_ID =" + rootFT_Id; using (SqlDataAdapter adapter = new SqlDataAdapter(strSQL, con)) { adapter.Fill(ds); } TreeNode NewNode = new TreeNode(); NewNode.Text = ds.Tables[0].Rows[0]["FT_NAME"].ToString().Trim(); this.treeView1.Nodes.Add(NewNode); InitTreeCompanyChildNode(NewNode, rootFT_Id); } } public DataSet getMenuByLevel(string strFT_ID) { DataSet ds = new DataSet(); using (SqlConnection con = new SqlConnection("Data Source=localhost;uid=sa;pwd=;Database=TW_KJ")) { con.Open(); string strSQL; if (strFT_ID == "00") { strSQL = "select * from TB_Personnel_Type where FT_ID like'" + "0_' and FT_UP_NO = 1"; } else { strSQL = "select * from TB_Personnel_Type where FT_ID like'" + strFT_ID.Trim() + "__'"; } using (SqlDataAdapter adapter = new SqlDataAdapter(strSQL, con)) { adapter.Fill(ds); } } return ds; } //遞迴擷取子節點 private void InitTreeCompanyChildNode(TreeNode pNode, string fatherFT_ID) { DataSet ds = getMenuByLevel(fatherFT_ID); DataView dataView = new DataView(); dataView = ds.Tables[0].DefaultView; foreach (DataRowView drv in dataView) { string newFT_ID = drv["FT_ID"].ToString(); string name = drv["FT_NAME"].ToString(); TreeNode NewNode = new TreeNode(); //將子節點添加到父節點下面 NewNode.Text = name; pNode.Nodes.Add(NewNode); InitTreeCompanyChildNode(NewNode, newFT_ID); } } private void Property_Load(object sender, EventArgs e) { AddRootCompany(); }