C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换
LINQ to DataSet需要使用System.Core.dll、System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System.Data和System.Data.DataSetExtensions。
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 productsselect 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 products.AsEnumerable()orderby p.Field<int>("SortOrder")select p; IEnumerable<DataRow> rows = expr.ToArray(); foreach (var row in rows) {Console.WriteLine(row.Field<string>("ProductName")); }
var expr = from p in ds.Tables["Product"].AsEnumerable()orderby p.Field<int>("SortOrder"), p.Field<string>("ProductName") descendingselect 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") > 10mselect 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 gselect 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"));} }
查询Product中每个CategoryID的数目:
var expr = from p in ds.Tables["Product"].AsEnumerable()group p by p.Field<int>("CategoryID") into gselect new{CategoryID = g.Key,ProductsCount = g.Count()};
转载于:https://www.cnblogs.com/hedianzhan/p/9010999.html
C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换相关推荐
- C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换
LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...
- LINQ系列:LINQ to ADO.NET概述
LINQ to ADO.NET 包括两种独立的技术: LINQ to DataSet 和 LINQ to SQL. 使用 LINQ to DataSet 可以对DataSet 执行丰富而优化的查询,而 ...
- Code First开发系列之管理数据库创建,填充种子数据以及LINQ操作详解
本篇目录 管理数据库创建 管理数据库连接 管理数据库初始化 填充种子数据 LINQ to Entities详解 什么是LINQ to Entities 使用LINQ to Entities操作实体 L ...
- 光脚丫学LINQ系列演示
更新说明 没发布一个演示就要更新一次内容,实在是麻烦!麻烦倒也没什么,关键是太浪费大好光阴了! 所以,此文章的内容暂停更新.当演示全部完毕之后,或者到了某一个段落在更新吧! 这是学习LINQ的时候,把 ...
- Atitit.数据操作dsl 的设计 ---linq 方案
Atitit.数据操作dsl 的设计 ---linq 方案 1.1. sql与api方式1 1.2. Linq方案与stream方案的选择,1 1.3. 前缀表达式 vs 中缀表达式1 1.4. 要不 ...
- DataSet DataTable操作
SqlDataReader sdr = cmd.ExecuteReader(); while (sdr.Read()) //行的读取 { Response.Write(sdr[0]); //列的读取, ...
- 合并多个DataTable及将DataTable添加到DataSet的方法
Merge方法是将两个结构相似的datatable合并成一个datatable: // 创建表1 DataTable dt1 = new DataTable(); // 添加数据 dt1.Colum ...
- C#一个DataSet中存入多个DataTable的方法
private void btn1_Click(object sender, System.EventArgs e) {//创建数据集 DataSet ds ...
- 使用WCF传输DataTable:DataTable和Xml格式的字符串相互转换(C#)
背景:项目中要用到客户端向服务端传数据,使用WCF,绑定webHttpBinding,做了一个小例子. 业务逻辑简介:客户端在a表中添加了几条数据,从SQL Server数据库直接取出新添加的数据(D ...
- 媲美Pandas?一文入门Python的Datatable操作
作者 | Parul Pandey 译者 | linstancy 责编 | Jane 出品 | Python大本营(id:pythonnews) [导读]工具包 datatable 的功能特征与 Pa ...
最新文章
- 从事JAVA 20年最终却败给了Python,哭了!
- Enterprise Library 2.0 技巧(3):记录ASP.NET站点中未处理的异常
- View和View的参数传递
- 转自知乎大神----JS 的 new 到底是干什么的?
- 四十五、Gtihub+Hexo+icarus搭建自己的博客
- Android-opencv之CVCamera (转载)
- 第一个神经网络代码分享
- 吃透这套架构演化图,从零搭建Web网站也不难!
- thinkphp去重,distinct、group
- Unity 清理注册表和临时文件
- ps2无线手柄连接arduino的使用方法
- DDR2 sodimm + Flash + Triple-Speed Ethernet + IO in nios
- mac不用 linux知乎,用 Linux 让旧 MacBook 重获新生 | Linux 中国
- 当Forms表单遇到Power BI
- 十、如何给标识符命名
- 如何测算BMI指数(Python)
- 隐私计算--37--演讲实录:深入浅出谈联邦学习
- 微信撤回软件安卓版_微信拍一拍撤回软件下载
- android性能测试自动化,Android App自动化性能测试探究
- (附源码)ssm高校选课系统 毕业设计 291627