工作中经常用到的linq根据传入数据集合查询对应子级数据,整理共享,希望大家都能用得上,代码中doublesArray 为父节点对应ID数据集合,再根据ID数据集合查询全部子级数据。

            //获取缓存数据
            object obj = Caching.GetCache(CacheKey + UModel.RoleId);
            if (obj != null)//判读缓存数据是否null
            {
                SysFunList = (DataSet)obj;
            }
            else
            {

                string strSql = "select * from View_SysRoleList where LoginID='" + UModel.LoginId + "' order by [Custom_Displayorder]";
                SysFunList = SqlHelper.Query(SqlHelper.LocalSqlServer, strSql.ToString());
                Caching.SetCache(CacheKey + UModel.RoleId, SysFunList);
            }

            //linq获取数据集内所有父节点数据
            var query = (from t in SysFunList.Tables[0].AsEnumerable()
                         where t.Field<int>("Custom_ParentNodeId") == 0
                         select t);

            if (query.Count() > 0)
            {
                //linq获取数据内所有父节点对应ID
                var doublesArray = query.Select(one => one.Field<int>("Custom_NodeId"));
                if (doublesArray.Count() > 0)
                {
                    //linq 根据ID数据结合获取对应下一级数据
                    var foos = from tq in SysFunList.Tables[0].AsEnumerable()
                               where doublesArray.Contains(tq.Field<int>("Custom_ParentNodeId"))
                               orderby tq.Field<int>("Custom_Displayorder") descending
                               select tq;

                    //转换为DataTable
                    DataTable boundTable = foos.CopyToDataTable<DataRow>();
                    RepeaterMeau.DataSource = boundTable;
                    RepeaterMeau.DataBind();
                }
            }

最新文章

  1. 关系数据库SQL之可编程性触发器
  2. CSS 伪类
  3. Win10如何设置防火墙开放特定端口 windows10防火墙设置对特定端口开放的方法
  4. 如何修改DBSNMP和SYSMAN用户的密码
  5. 转:设置session过期时间
  6. ThinkPHP3.2.3新特性之:数据库设置
  7. datagridview的数据源的操作
  8. 【重点突破】——Cookie的使用
  9. 关于mybatis-generator的问题
  10. 从Excel中导入数据时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决办法
  11. 4. Spring 如何通过 XML 文件配置Bean,以及如何获取Bean
  12. Java 反射 调用私有构造方法
  13. C# txt文件的读取与写入
  14. python sort、sorted高级排序技巧
  15. Jmeter(四十三)WebSocket Sampler 和 Ajax Request
  16. protobuf与json相互转换的方法
  17. .net framework多个版本在IIS服务器上时应注意-重新注册IIS-错误Server Application Unavailable
  18. UVA 11475 Extend to Palindrome(hash)题解
  19. python3内置函数大全
  20. Java数据结构和算法(三):常用排序算法与经典题型

热门文章

  1. iOS-AFNetworking封装Get(自定义HTTP Header)和Post请求及文件下载
  2. BZOJ 3684: 大朋友和多叉树 [拉格朗日反演 多项式k次幂 生成函数]
  3. POJ 3128 Leonardo&#39;s Notebook [置换群]
  4. 【STL】c++ priority_queue的使用方法
  5. 简易商品信息管理系统——首个Web项目
  6. Windows Server 2016-部署RODC只读域控制器
  7. 理解Java Integer的缓存策略【转】
  8. a元素的两个重要功能和表格布局
  9. TensorFlow实战之实现自编码器过程
  10. centos7下安装apache服务器httpd的yum方式安装