Code privatevoid 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<string>("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<string>("Menu_ChildName");//获取了节点名 if (childnd.Text !="")//如果子节点名不为空,则将其加入到其对应的父节点中去 { node.Nodes.Add(childnd); } } MenuTView.Nodes.Add(node);//将所有节点添加到TreeView中去,其MenuTView为TreeView控件 } }