精通LINQ--8.1.5 分组查询

   分组查询和SQL语句中的带有“group”关键字的查询功能类似,它能够把查询结果按照关键字进行分组。下面的实例代码使用LINQ to SQL查询LinqDB数据库的Product表中的数据,并按照UserID列的值对查询结果进行分组和排序。具体步骤如下。

1)创建LinqDBDataContext类的实例db

2)使用LINQ查询表达式查询Product表中的数据(商品),并在查询中使用group子句对查询结果按照UserID列的值进行分组,并按照组的关键字进行升序排序。最后,使用select子句查询商品名称(Product表的Name列的值)和用户名称(UserInfo表的Username列的值,由子查询获取)。查询界保存为result变量。

3)把result变量设置为GridView控件gvData的数据源,并绑定该控件的数据,显示查询结果。

         private void ShowData()

         {   ///创建LinqDB数据库的数据上下文的实例

                   LinqDBDataContext db = new LinqDBDataContext(LinqSystem.LinqDBConnectionString);

                   ///获取所有商品及其所属用户

                  var result = from p in db.Product

                                                group p by p.UserID into g

                                                orderby g.Key

                                                select new

                                                {   ///获取商品名称和用户名称

                                                         ProdcutName = g.First().Name,

                                                         Username = (from u in db.UserInfo

                                                                                     where u.ID == g.Key

                                                                                     select u).First().Username

                                               };

                   ///绑定控件数据,并显示数据

                   gvData.DataSource = result;

                   gvData.DataBind();

         }

Sample_08项目中的GroupQuery.aspx页面测试了上述实例代码(ShowData()函数),测试结果如图所示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值