Winform中的Treeview动态绑定数据库

http://bbs.csdn.net/topics/370139193

SQL code
 
?
1
2
3
4
5
6
CREATE  TABLE  [dbo].[Company] (
     [Id] [ int ] IDENTITY (1, 1)   Primary  Key  NOT  NULL  ,
     [Levers] [ varchar ] (50)  COLLATE  Chinese_PRC_CI_AS  NULL  ,
     [LevelId] [ varchar ] (50)  COLLATE  Chinese_PRC_CI_AS  NULL  ,
     [ Name ] [ varchar ] (50)  COLLATE  Chinese_PRC_CI_AS  NULL 
)


C# code
 
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
public  partial  class  Form1 : Form
     {
         public  string  rootId =  "-1" ;
 
         public  Form1()
         {
             InitializeComponent();
             AddRootCompany(rootId);
             AddSubCompany();
         }
 
         /// <summary>
         /// 添加总公司
         /// </summary>
         /// <param name="rootId"></param>
         private  void  AddRootCompany( string  rootId)
         {
             DataSet ds =  new  DataSet();
             using  (SqlConnection con =  new  SqlConnection( "Data Source=localhost;uid=sa;pwd=saiyang;Database=CSDN" ))
             {
                 con.Open();
                 string  strSQL =  "select * from Company where Levers='"  + rootId +  "'" ;
                 using  (SqlDataAdapter adapter =  new  SqlDataAdapter(strSQL, con))
                 {
                     adapter.Fill(ds);
                 }
                 TreeNode NewNode =  new  TreeNode();
                 NewNode.Text = ds.Tables[0].Rows[0][ "Name" ].ToString().Trim();
                 this .treeView1.Nodes.Add(NewNode);
             }
         }
 
         /// <summary>
         /// 添加子公司
         /// </summary>
         private  void  AddSubCompany()
         {
             DataSet ds = getMenuByLevel(rootId.ToString());
             for  ( int  j = 0; j < ds.Tables[0].Rows.Count; j++)
             {
                 InitTreeCompanyChildNode(treeView1.Nodes[j], ds.Tables[0].Rows[j][ "LevelId" ].ToString());
             }
 
         }
 
         /// <summary>
         /// 获取层次级别
         /// </summary>
         /// <param name="getparams"></param>
         /// <returns></returns>
         public  DataSet getMenuByLevel( string  param)
         {
             DataSet ds =  new  DataSet();
             using  (SqlConnection con =  new  SqlConnection( "Data Source=localhost;Initial Catalog=CSDN;User ID=sa;Password=saiyang" ))
             {
                 con.Open();
                 string  strSQL =  "select * from Company where Levers='"  + param +  "'" ;
                 using  (SqlDataAdapter adapter =  new  SqlDataAdapter(strSQL, con))
                 {
                     adapter.Fill(ds);
                 }
             }
             return  ds;
         }
 
         /// <summary>
         /// 递归获取子节点
         /// </summary>
         /// <param name="PNode"></param>
         /// <param name="classParentID"></param>
         private  void  InitTreeCompanyChildNode(TreeNode pNode,  string  classParentID)
         {
             DataSet ds = getMenuByLevel(classParentID);
             DataView dataView =  new  DataView();
             dataView = ds.Tables[0].DefaultView;
             foreach  (DataRowView drv  in  dataView)
             {
                 string  id = drv[ "LevelId" ].ToString();
                 string  name = drv[ "Name" ].ToString();
                 TreeNode NewNode =  new  TreeNode();
                 //将子公司添加到父节点下面
                 NewNode.Text = name;
                 pNode.Nodes.Add(NewNode);
                 InitTreeCompanyChildNode(NewNode, id);
             }
         }
 
     }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值