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
加支付宝好友偷能量挖...