Linq初级班 Linq to DataSet体验(单表、多表联合查询JOIN语法)

简介:

Linq初级班 Linq To DataSet体验

DataSet是包含内部数据表的对象,在这些内部数据表中,数据是临时存储并且可以被应用程序所使用.从本质上讲,DataSet是数据在本地内容中的缓存,且数据一般是从数据库中得到,这个缓存让我们可以在连接断开的模式下对DataSet中的数据进行更新,跟踪这些变化,并在应用程序重新连接时间这些变更保存到数据库中.

DataSet本身非常灵活且强大.它为应用程序提供了有效地使用数据库中的数据子集以及根据应用程序需要操作数据的能力,而且所有这些都可以在断开连接的状态下进行,然后再将变更回馈数据库.虽然DataSet具有这么多的灵活性,但是在查询的方法上却很欠缺.而LINQ to DataSet为开发人员提供了一整套查询能力,本文将讲解如何使用它进行DataSet查询,目录如下:

目录

1.单表查询

2.多表查询

1.单表查询

为了大家拿到代码好测试,我就不从数据库来获取数据了,直接用代码加载测试数据了.下面的示例演示用LINQ to DataSet筛选出所有的RoleId等于2的User:

方法语法:

代码

查询语法:

复制代码
var query  =  from u  in  ds.Tables[ " User " ].AsEnumerable()
where  u.Field < int > ( " RoleId " ==   2
select 
new
{
Id 
=  u.Field < int > ( " Id " ),
Name 
=  u.Field < string > ( " Name " ),
RoleId 
=  u.Field < int > ( " RoleId " )
};
复制代码

运行结果:

2.多表查询

下面的示例是通过User表中的RoleId字段联接到Role表,并且查询出所有的普通用户来:

方法语法:

代码

查询方法:

复制代码
var query  =  (from u  in  ds.Tables[ " User " ].AsEnumerable()
join r 
in  ds.Tables[ " Role " ].AsEnumerable()
on u.Field
< int > ( " RoleId " ) equals r.Field < int > ( " Id " )
select 
new  
{
Id 
=  u.Field < int > ( " Id " ),
Name 
=  u.Field < string > ( " Name " ),
RoleId 
=  r.Field < int > ( " Id " ),
RoleName 
=  r.Field < string > ( " Name " )
}).Where(q 
=>  q.RoleId  ==   2 );
复制代码

运行结果:

小结:

使用LINQ to DataSet可以轻松的在DataSet的表间做查询,使用Lambda表达式,开发人员能更直观的清晰的组织查询语句,从而实现对DataSet的轻松查询.目前我正在自学LINQ,在此把自己的学习成果分享一下,仅提供给初学者作为参考用,如果有错误的地方请高手指出,我尽快改正~~




本文转自黄聪博客园博客,原文链接:http://www.cnblogs.com/huangcong/archive/2011/01/01/1923758.html,如需转载请自行联系原作者

相关文章
|
9月前
|
关系型数据库 MySQL 数据管理
MySQL查询语言:从SELECT到多表查询
本文深入探讨了MySQL查询语言的核心要素,涵盖了SELECT语句的详解、WHERE子句与逻辑操作符、ORDER BY子句与排序、聚合函数与GROUP BY子句,以及JOIN操作与多表查询。通过详细介绍每个部分的用法和示例,读者可以轻松掌握在MySQL中进行数据查询和分析的关键技能。了解SELECT语句的构造,以及如何使用WHERE子句和逻辑操作符筛选数据,能够使读者更有效地提取所需信息。此外,通过掌握ORDER BY子句进行排序和使用聚合函数进行数据汇总,读者将能够在查询结果中获得更有价值的信息。最后,本文还介绍了JOIN操作,使读者能够从多个数据表中联合数据,实现更复杂的查询需求
66 0
|
5月前
|
SQL 算法 关系型数据库
MySQL查询优化之order by 、 group by与分页查询优化
MySQL查询优化之order by 、 group by与分页查询优化
58 0
|
6月前
|
SQL
SQL数据查询——单表查询和排序
SQL数据查询——单表查询和排序
64 0
|
6月前
JOIN多表关联查询
JOIN多表关联查询
25 0
|
11月前
|
SQL 存储 Oracle
通过sql做数据透视表,数据库表行列转换(pivot和Unpivot用法)(一)
在mssql中大家都知道可以使用pivot来统计数据,实现像excel的透视表功能 一、MSsqlserver中我们通常的用法
319 0
|
SQL HIVE
hive:条件查询、join关联查询、分组聚合、子查询
hive:条件查询、join关联查询、分组聚合、子查询
627 0
hive:条件查询、join关联查询、分组聚合、子查询
|
SQL 数据库
SQL 多表联合查询的几种方式
SQL 多表联合查询的几种方式
SQL 多表联合查询的几种方式
|
关系型数据库 MySQL 数据库
mysql数据库多表各种join用法
mysql数据库多表各种join用法
127 0
|
SQL Java 数据库连接
JPA的多表复杂查询
JPA的多表复杂查询
240 0
|
SQL 设计模式 消息中间件
如何实现一个跨库连表SQL生成器?
用户只需在前端简单配置下指标,系统即可自动生成大宽表,让用户查询到他所需要的实时数据,数据源支持跨库并支持多种目标介质。这样的数据全局实时可视化如何实现?本文从需求分析开始,分享自动生成SQL功能开发中运用到的设计模式和数据结构算法设计。
3379 0
如何实现一个跨库连表SQL生成器?