LINQ编程实战TreeView动态绑定数据
首先,先来重新创建一个数据库表,这里的数据库表与之前所创建的表有些不同,大家可以自己对比一下。
CREATE TABLE [dbo].[Me_Menu] ( [Menu_Id] [int] IDENTITY (1, 1) NOT NULL ,/**节点ID*/ [Menu_ParentName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,/**父节点名*/ [Menu_ChildName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,/**子节点名*/ [Menu_Order] [int] NULL ,/**//*排序用*/ ) ON [PRIMARY] GO
创建好数据库表后,就是打开数据库连接了,具体的打开方法在这里就不哆嗦了,可参考一下WPF(Winform)中动态创建TreeView 中第二步。
然后,一起来看看其数据的绑定方法吧:
private void BindMenuData() { string sql = "Select distinct Menu_ParentName,Menu_ChildName From Me_Menu order by Menu_Order desc"; DataTable menudt = db.GetDbTable(sql);//从数据库中查询出该数据库表,GetDbTable()方法请参见wpf动态创建TreeView中的DBbuild类 //LINQ查询 var menuData = from menu in menudt.AsEnumerable() group menu by menu.Field("Menu_ParentName"); //按Menu_ParentName来进行分组 TreeNode node;//父节点 TreeNode childnd;//子节点 foreach (var m in menuData) //循环查询 { node = new TreeNode(); node.Text = m.Key; //获取父节点名 foreach (var mm in m) //在分组中循环查询 { childnd = new TreeNode(); childnd.Text = mm.Field("Menu_ChildName");//获取了节点名 if (childnd.Text != "")//如果子节点名不为空,则将其加入到其对应的父节点中去 { node.Nodes.Add(childnd); } } MenuTView.Nodes.Add(node);//将所有节点添加到TreeView中去,其MenuTView为TreeView控件 } }
最后,在需要的地方直接调用BindMenuData()就可以了。
相关推荐
lanmantech 2020-07-04
lfjjia 2013-07-04
suwu0 2018-05-07
bighandsky 2018-07-09
梦回forever 2012-01-09
IA视频监控 2018-07-09
Mrlinjw 2018-05-07
我的电子世界 2018-01-15
singlow 2019-06-28
zsh 2017-11-06
图流量监控 2019-06-27
87493063 2015-02-09
theRoom 2019-06-27
zhaoyum 2019-06-27
谷歌架构师 2019-06-26
YOKOELEMENT 2014-01-06
勤能补拙孰能生巧 2019-06-25
bertZuo 2019-06-25