linq数据库分组查询

  分组查询和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()函数),测试结果如图所示。

 

来源:http://blog.csdn.net/linqmail/article/details/2321671

加支付宝好友偷能量挖...


评论(0)网络
阅读(132)喜欢(0)asp.net-linq