asp.net Linq 实现分组查询
首先我们还是先建立一个person.cs类
public class person
{
public string name
{ get; set; }
public int age
{ get; set; }
public string sex
{ get; set; }
}
接下来我们往这个person类添加数据:
List plist1 = new List();
plist1.Add(new person { name = "cxx1", age = , sex = "男" });
plist1.Add(new person { name = "www.baidu.com", age = , sex = "男" });
plist1.Add(new person { name = "www.52mvc.com", age = , sex = "男" });
List plist2 = new List();
plist2.Add(new person { name = "cxx1", age = , sex = "男" });
plist2.Add(new person { name = "cxx2", age = , sex = "男" });
plist2.Add(new person { name = "cxx4", age = , sex = "男" });
plist2.Add(new person { name = "cxx5", age = , sex = "男" });
// asp.net
var query = from person p in plist1
join person per in plist2
on p.name equals per.name
select new
{
名称=p.name,
性别=p.sex,
年龄=p.age
};
gd2.DataSource = query;
gd2.DataBind();
返回的结果是:

备注:这个方法是要查找出 plist1 与 plist2 之中,name名称有相同记录的数据。
接下来我们来看看sql中的左连接left join 在linq中如何实现
还是先来创建两个cs 类。
///
/// 手机列表
///
public class MobileStore
{
public string mobId
{ set; get; }
public string mobName
{ set; get; }
}
/// 手机销售表
///
public class MobileSale
{
public string Sid
{ set; get; }
public string mobId
{ set; get; }
public string mobName
{ set; get; }
public string price
{ set; get; }
}
List listStore = new List();
listStore.Add(new MobileStore { mobId = "", mobName = "N86" });
listStore.Add(new MobileStore { mobId = "", mobName = "N82" });
listStore.Add(new MobileStore { mobId = "", mobName = "N81" });
listStore.Add(new MobileStore { mobId = "", mobName = "N95" });
listStore.Add(new MobileStore { mobId = "", mobName = "N85" });
listStore.Add(new MobileStore { mobId = "", mobName = "N97" });
List listSale = new List();
listSale.Add(new MobileSale { Sid="" ,mobId="",mobName="N86",price=""});
listSale.Add(new MobileSale { Sid="", mobId = "", mobName = "N82",price="" });
listSale.Add(new MobileSale { Sid = "", mobId = "", mobName = "N81", price = "" });
var query = from MobileStore m in listStore
join MobileSale sale in listSale
on m.mobId equals sale.mobId into joinm
from j in joinm.DefaultIfEmpty()
select new
{
ID = m.mobId,
名称 = m.mobName,
价格 = j == null ? "暂无数据" : j.price,
};
gd.DataSource = query;
gd.DataBind();
asp.net Linq 实现分组查询的更多相关文章
- linq中分组查询而且获取每个分组中的第一条记录,数据用于分页绑定
LINQ分组取出第一条数据 Person1: Id=1, Name="Test1" Person2: Id=1, Name="Test1" Person3: I ...
- LINQ to Entities 查询语法
转自: http://www.cnblogs.com/asingna/archive/2013/01/28/2879595.html 实体框架(Entity Framework )是 ADO.NET ...
- MVC项目实践,在三层架构下实现SportsStore-09,ASP.NET MVC调用ASP.NET Web API的查询服务
ASP.NET Web API和WCF都体现了REST软件架构风格.在REST中,把一切数据视为资源,所以也是一种面向资源的架构风格.所有的资源都可以通过URI来唯一标识,通过对资源的HTTP操作(G ...
- 浅谈sql 、linq、lambda 查询语句的区别
浅谈sql .linq.lambda 查询语句的区别 LINQ的书写格式如下: from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量 ...
- LinQ to SQL 查询
LINQ to SQL 是将对象关系映射到.NET框架中的一种实现.它可以将关系数据库映射为.NET Framework中的一些类. 然后,开发人员就可以通过使用 LINQ to SQL对数据库中的数 ...
- C# - LINQ 语言集成查询
LINQ(Language Integrated Query) LINQ语言集成查询是一组用于C#语言的扩展.它允许编写C#代码对数据集进行查询,比如查询内存中的对象或查询远程数据库的表.利用linq ...
- C#编程(六十二)---------LINQ标准的查询操作符
LINQ标准的查询操作符 首先我们来看一下LINQ的操作符,可根据查询操作符的操作”类型”进行分类,如把它们分成投影,限制,排序,联接,分组,串联,聚合,集合,生成,转换,元素,相等,量词,分割等. ...
- CASE函数 sql server——分组查询(方法和思想) ref和out 一般处理程序结合反射技术统一执行客户端请求 遍历查询结果集,update数据 HBuilder设置APP状态栏
CASE函数 作用: 可以将查询结果集的某一列的字段值进行替换 它可以生成一个新列 相当于switch...case和 if..else 使用语法: case 表达式/字段 when 值 then ...
- MySQL时间分组查询
表TESTER 字段:id -- INT date -- TIMESTAMP 1.如何按年.月.日分组查询? select DATE_FORMAT(date,'%Y-%m-%d') time, ...
随机推荐
- python-面向对象(一)——开篇基础
面向对象编程(Object Oriented Programming,OOP,面向对象程序设计) 一.创建类和对象 面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现, ...
- 如何在 CentOS 7 上安装 Redis 服务器
大家好,本文的主题是 Redis,我们将要在 CentOS 7 上安装它.编译源代码,安装二进制文件,创建.安装文件.在安装了它的组件之后,我们还会配置 redis ,就像配置操作系统参数一样,目标就 ...
- JAVA 面向对象-2-继承(Inheritance)
i.继承(Inheritance) 1.继承的概念 继承:在面向对象编程的过程中,通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类. 继承是面向对象编程最重要的特征之一. 继承的优点:1 ...
- Cocos2d-x 在缓存创建图片
/* 加载图片资源到SpriteFrame缓存池*/ CCSpriteFrameCache *cache=CCSpriteFrameCache::sharedSpriteFrameCache( ...
- Java GC 概念摘要
很长时间,我想Java的GC做一个小小的总结,他有没有时间.根据最近看了java paper向上java gc文章,我觉得好,读读.顺便说一下,总结下. java paper的GC文章地址,里面有非常 ...
- window下手动搭建 PHP+Nginx+Mysql(转)
首先还是下载 nginx: http://nginx.org/en/download.html php : http://windows.php.net/download/ mysql: ht ...
- uva 167 - The Sultan's Successors(典型的八皇后问题)
这道题是典型的八皇后问题,刘汝佳书上有具体的解说. 代码的实现例如以下: #include <stdio.h> #include <string.h> #include < ...
- spring core源码解读之ASM4用户手册翻译之一asm简介
第一章:ASM介绍 1.1 ASM动机: 程序的分析,生成,转换技术可以应用到许多场景: 1.程序分析,从简单的语法解析到完整的语义分析,可以应用在程序中找到潜在的bug,发现无用的代码,工程代码的逆 ...
- [转] Tomcat 配置 SSL
PS: keystore有自己的访问密码,这个保护层次要低一些,然后keystore里面存有自己的私钥,所以用户要破解的话,既要有keystore,又要有keystore的密码,p12是客户端keys ...
- CentOS 6.7安装配置Ansible
1.准备CentOS环境 yum update && yum upgrade 2.控制服务器与被管理服务器要求 Master:Python 2.6+ Slave:Python 2.4+ ...