LINQ编程实战TreeView动态绑定数据

开发 后端
本文将介绍LINQ编程实战TreeView动态绑定数据,LINQ在实际开发过程中比较简单,也适合大家实际使用。希望能给大家带来一点帮助……

首先,先来重新创建一个数据库表,这里的数据库表与之前所创建的表有些不同,大家可以自己对比一下。

  1. CREATE TABLE [dbo].[Me_Menu] (  
  2.     [Menu_Id] [int] IDENTITY (1, 1) NOT NULL ,/**节点ID*/  
  3.     [Menu_ParentName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,/**父节点名*/  
  4.     [Menu_ChildName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,/**子节点名*/  
  5.     [Menu_Order] [int] NULL ,/**//*排序用*/  
  6. ) ON [PRIMARY]  
  7. GO 

创建好数据库表后,就是打开数据库连接了,具体的打开方法在这里就不哆嗦了,可参考一下WPF(Winform)中动态创建TreeView 中第二步。

然后,一起来看看其数据的绑定方法吧:

  1. private void BindMenuData()  
  2.         {  
  3.             string sql = "Select distinct Menu_ParentName,Menu_ChildName From Me_Menu order by Menu_Order desc";  
  4.             DataTable menudt = db.GetDbTable(sql);//从数据库中查询出该数据库表,GetDbTable()方法请参见wpf动态创建TreeView中的DBbuild类  
  5.             //LINQ查询  
  6.             var menuData = from menu in menudt.AsEnumerable()                       
  7.                                group menu by menu.Field("Menu_ParentName"); //按Menu_ParentName来进行分组  
  8.  
  9.             TreeNode node;//父节点  
  10.             TreeNode childnd;//子节点  
  11.             foreach (var m in menuData) //循环查询  
  12.             {  
  13.                 node = new TreeNode();  
  14.                 node.Text = m.Key; //获取父节点名  
  15.                 foreach (var mm in m) //在分组中循环查询  
  16.                 {  
  17.                     childnd = new TreeNode();  
  18.                     childnd.Text = mm.Field("Menu_ChildName");//获取了节点名  
  19.                     if (childnd.Text != "")//如果子节点名不为空,则将其加入到其对应的父节点中去  
  20.                     {  
  21.                         node.Nodes.Add(childnd);  
  22.                     }  
  23.                 }  
  24.                 MenuTView.Nodes.Add(node);//将所有节点添加到TreeView中去,其MenuTView为TreeView控件  
  25.             }  
  26.         } 

最后,在需要的地方直接调用BindMenuData()就可以了。

当然你也可以重写一个带TreeView参数的方法,如:BindMenuData(TreeView MenuTView),来动态创建TreeView。

希望能给大家带来一点帮助……

【编辑推荐】

  1. 使用LINQ查询泛型字典Dictionary
  2. 浅析Linq to SQL更新数据时容易忽略的问题
  3. 浅谈LINQ to SQL集成数据库语言优劣
  4. LINQ横向对比foreach方法
  5. 浅谈LINQ如何插入删除和更新数据库记录备注
责任编辑:彭凡 来源: cnblogs
相关推荐

2009-07-28 08:24:16

GridView绑定数

2017-08-07 16:39:03

JSX动态数据

2009-09-17 13:10:48

linq动态排序

2009-09-15 10:16:01

LINQ动态查询

2009-09-18 15:15:12

LINQ to SQL

2009-09-17 16:46:34

Linq to sql

2009-09-15 09:19:22

linq动态条件

2009-09-14 16:12:57

LINQ删除记录

2009-12-23 09:04:41

LINQ通用分页

2009-09-17 16:20:43

Linq to sql

2009-09-14 19:14:51

LINQ动态查询

2009-09-17 17:03:13

LINQ动态查询

2009-09-15 09:45:23

Linq动态条件

2009-09-14 16:41:01

LINQ嵌套

2024-09-18 09:30:41

SpringBootGroovy动态编程

2012-01-09 11:26:15

Java

2009-09-14 13:50:35

LINQ编程模型

2009-09-07 22:29:04

LINQ组合查询

2009-09-16 11:15:52

Linq联接数据

2009-09-07 17:32:14

LINQ检索数据
点赞
收藏

51CTO技术栈公众号