1. DataTable读取列表
DataSet ds = new DataSet();
// 省略ds的Fill代码
DataTable products = ds.Tables["Product"];
IEnumerable<DataRow> rows = from p in products.AsEnumerable()
select p;
foreach (DataRow row in rows)
{
Console.WriteLine(row.Field<string>("ProductName"));
}
DataSet ds = new DataSet();
// 省略ds的Fill代码
DataTable products = ds.Tables["Product"];
var rows = products.AsEnumerable()
.Select(p => new
{
ProductID = p.Field<int>("ProductID"),
ProductName = p.Field<string>("ProductName"),
UnitPrice = p.Field<decimal>("UnitPrice")
});
foreach (var row in rows)
{
Console.WriteLine(row.ProductName);
}
var products = ds.Tables["Product"].AsEnumerable();
var query = from p in products select p.Field<string>("ProductName");
2. DataTable查询
var rows = products.AsEnumerable()
.Where(p => p.Field<decimal>("UnitPrice") > 10m)
.Select(p => new {
ProductID = p.Field<int>("ProductID"),
ProductName = p.Field<string>("ProductName"),
UnitPrice = p.Field<decimal>("UnitPrice")
});
3. DataTable数据排序
var rows = products.AsEnumerable()
.Where(p => p.Field<decimal>("UnitPrice") > 10m)
.OrderBy(p => p.Field<int>("SortOrder"))
.Select(p => new
{
ProductID = p.Field<int>("ProductID"),
ProductName = p.Field<string>("ProductName"),
UnitPrice = p.Field<decimal>("UnitPrice")
});
var expr = from p in ds.Tables["Product"].AsEnumerable()
orderby p.Field<int>("SortOrder"), p.Field<string>("ProductName") descending
select p;
4. 多个DataTable查询
var query = from p in ds.Tables["Product"].AsEnumerable()
from c in ds.Tables["Category"].AsEnumerable()
where p.Field<int>("CategoryID") == c.Field<int>("CategoryID")
&& p.Field<decimal>("UnitPrice") > 10m
select new
{
ProductID = p.Field<int>("ProductID"),
ProductName = p.Field<string>("ProductName"),
CategoryName = c.Field<string>("CategoryName")
};
5. DataTable分组
var query = from p in ds.Tables["Product"].AsEnumerable()
group p by p.Field<int>("CategoryID") into g
select new
{
CategoryID = g.Key,
Products = g
};
foreach (var item in query)
{
Console.WriteLine(item.CategoryID);
foreach (var p in item.Products)
{
Console.WriteLine(p.Field<string>("ProductName"));
}
}
var expr = from p in ds.Tables["Product"].AsEnumerable()
group p by p.Field<int>("CategoryID") into g
select new { CategoryID = g.Key, ProductsCount = g.Count() };
Linq&Lumda---LINQ to DataSet的DataTable操作的更多相关文章
-
C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换
LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...
-
.NET DataSet、DataTable操作记录
一直在习惯.net的编程思维,或是说C#吧.因为前几年一直在用PHP做站,现在用.net很不习惯,主要C#都依赖对控件.类的熟悉,不然很多功能都实现不了. 需求 最近做了一功能,从SQL Server ...
-
LINQ系列:LINQ to DataSet的DataTable操作
LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...
-
LINQ to DataSet的DataTable操作
1. DataTable读取列表 DataSet ds = new DataSet();// 省略ds的Fill代码DataTable products = ds.Tables["Produ ...
-
Linq to SQL 简单的增删改操作
Linq to SQL 简单的增删改操作. 新建数据库表tbGuestBook.结构如下: 新建web项目,完成相应的dbml文件.留言页面布局如下 <body> <form id= ...
-
【ADO.NET基础知识】SqlConnection、command、DataSet 、DataTable、dataAdapter
1.使用Connection连接数据库的步骤: (1).添加命名空间 System.Data.SqlClient(注意:初学者经常会忘记) (2)定义连接字符串.连接SQL Server 数据库时: ...
-
LINQ之LINQ to Objects(上)
LINQ概述 LINQ,语言集成查询(Language Integrated Query),它允许使用C#或VB代码以查询数据库相同的方式来操作不同的数据源. 1.LINQ体系结构 从上图可以看出,L ...
-
C# 基础:DataTable操作、发邮件
本文出自:https://www.cnblogs.com/2186009311CFF/p/6865909.html DataTable操作 据参数删除为0的列:包括遍历.删除.取值 public st ...
-
C# ~ 从 XML 到 Linq 到 Linq to XML
.XML 可扩展标记语言 (Extensible Markup Language), 标记 (markup) 是关键部分,是标准通用标记语言 (Standard Generalized Markup ...
随机推荐
-
Ubuntu14.04 lamp环境 php mongodb扩展安装
安装pecl支持: sudo apt-get install php5-dev php5-cli php-pear 安装mongo驱动 sudo pecl install mongo 修改php.in ...
-
笔记汇总.md
```javascript 1.js对象,value的值取不到,试着将引入的js文件放到body的后面 $("input[type='time']").change( functi ...
-
WWDC————苹果全球开发者大会
WWDC:Apple Worldwide Developers Conference(苹果全球开发者)的简称,每年定期由苹果公司(Apple Inc.)在美国举办.大会主要的目的是让苹果公司向研发者们 ...
-
mybatis系列-06-输入映射
通过parameterType指定输入参数的类型,类型可以是简单类型.hashmap.pojo的包装类型 6.1 传递pojo的包装对象 6.1.1 需求 完成用户信息的综合查询,需要 ...
-
Python一路走来 Python算法
冒泡排序: 1,2位置左右比较.大的排右边,继续比较2,3 ...... list=[5,7,2,8,12,1] #print(len(list)) for j in range(len(list)) ...
-
HDU 1484 Basic wall maze (dfs + 记忆)
Basic wall maze Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
-
LINQ学习系列-----2.3 迭代器带来的延迟查询
此篇博文承接上一篇博文: LINQ学习系列-----2.2 迭代器 一.第一次执行 废话不多说,上源码: 执行结果下图: 为什么会这样?其实原因很简单 fro ...
-
SQL SERVER 常用知识整理
以前写了一些关于sql的文章,包括一些转载的,这里做下整理,方便需要时候使用 一.基础运用 SQL 数据结构操作语句 SQL 时间处理 SQL 常见函数使用 CASE WHEN THEN 小结 二.优 ...
-
Pairwise 找到你的另一半
都说优秀的程序员擅长面向对象编程,但却经常找不到另一半,这是为什么呢?因为你总是把自己局限成为一个程序员,没有打开自己的思维. 这是一个社群的时代啊,在这里你应该找到与你有相同价值观但又互补的另一半. ...
-
Android IPC机制(三)使用AIDL实现跨进程方法调用
上一篇文章中我们介绍了使用Messenger来进行进程间通信的方法,但是我们能发现Messenger是以串行的方式来处理客户端发来的信息,如果有大量的消息发到服务端,服务端仍然一个一个的处理再响应客户 ...