★搜Asp.net★(www.soAsp.net),为专业技术文档网站。
包括Asp.net开发技术文档·C#开发技术文档·Access/SQL Server数据库开发技术文档·VB.NET开发技术文档。
还包括·项目实战经验总结·开发经验技巧总结·项目开发心得。
精通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()函数),测试结果如图所示。