一、WinForm中TreeView資料繫結

來源:互聯網
上載者:User

原問題貼地址: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();    }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.