原问题贴地址: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
输出结果如下:
二、另一种方式,数据表结果如下图:
//实现多级目录 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(); }