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相互转换相关推荐

  1. C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换

    LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...

  2. LINQ系列:LINQ to ADO.NET概述

    LINQ to ADO.NET 包括两种独立的技术: LINQ to DataSet 和 LINQ to SQL. 使用 LINQ to DataSet 可以对DataSet 执行丰富而优化的查询,而 ...

  3. Code First开发系列之管理数据库创建,填充种子数据以及LINQ操作详解

    本篇目录 管理数据库创建 管理数据库连接 管理数据库初始化 填充种子数据 LINQ to Entities详解 什么是LINQ to Entities 使用LINQ to Entities操作实体 L ...

  4. 光脚丫学LINQ系列演示

    更新说明 没发布一个演示就要更新一次内容,实在是麻烦!麻烦倒也没什么,关键是太浪费大好光阴了! 所以,此文章的内容暂停更新.当演示全部完毕之后,或者到了某一个段落在更新吧! 这是学习LINQ的时候,把 ...

  5. Atitit.数据操作dsl 的设计 ---linq 方案

    Atitit.数据操作dsl 的设计 ---linq 方案 1.1. sql与api方式1 1.2. Linq方案与stream方案的选择,1 1.3. 前缀表达式 vs 中缀表达式1 1.4. 要不 ...

  6. DataSet DataTable操作

    SqlDataReader sdr = cmd.ExecuteReader(); while (sdr.Read()) //行的读取 { Response.Write(sdr[0]); //列的读取, ...

  7. 合并多个DataTable及将DataTable添加到DataSet的方法

    Merge方法是将两个结构相似的datatable合并成一个datatable: // 创建表1 DataTable dt1 = new  DataTable(); // 添加数据 dt1.Colum ...

  8. C#一个DataSet中存入多个DataTable的方法

    private void btn1_Click(object sender, System.EventArgs e)          {//创建数据集              DataSet ds ...

  9. 使用WCF传输DataTable:DataTable和Xml格式的字符串相互转换(C#)

    背景:项目中要用到客户端向服务端传数据,使用WCF,绑定webHttpBinding,做了一个小例子. 业务逻辑简介:客户端在a表中添加了几条数据,从SQL Server数据库直接取出新添加的数据(D ...

  10. 媲美Pandas?一文入门Python的Datatable操作

    作者 | Parul Pandey 译者 | linstancy 责编 | Jane 出品 | Python大本营(id:pythonnews) [导读]工具包 datatable 的功能特征与 Pa ...

最新文章

  1. 从事JAVA 20年最终却败给了Python,哭了!
  2. Enterprise Library 2.0 技巧(3):记录ASP.NET站点中未处理的异常
  3. View和View的参数传递
  4. 转自知乎大神----JS 的 new 到底是干什么的?
  5. 四十五、Gtihub+Hexo+icarus搭建自己的博客
  6. Android-opencv之CVCamera (转载)
  7. 第一个神经网络代码分享
  8. 吃透这套架构演化图,从零搭建Web网站也不难!
  9. thinkphp去重,distinct、group
  10. Unity 清理注册表和临时文件
  11. ps2无线手柄连接arduino的使用方法
  12. DDR2 sodimm + Flash + Triple-Speed Ethernet + IO in nios
  13. mac不用 linux知乎,用 Linux 让旧 MacBook 重获新生 | Linux 中国
  14. 当Forms表单遇到Power BI
  15. 十、如何给标识符命名
  16. 如何测算BMI指数(Python)
  17. 隐私计算--37--演讲实录:深入浅出谈联邦学习
  18. 微信撤回软件安卓版_微信拍一拍撤回软件下载
  19. android性能测试自动化,Android App自动化性能测试探究
  20. (附源码)ssm高校选课系统 毕业设计 291627

热门文章

  1. indesign使用教程,如何编辑段落样式?
  2. Ps 初学者教程,如何在图片中创建双重曝光效果?
  3. 在 Mac 上如何将 Better Zip 设置为自动更新?
  4. 效率工具Focus for Mac,阻止应用弹窗,集中注意力
  5. server2008r2经常蓝屏或者自动重启
  6. Greenplu数据库的部署
  7. 如何解决Linux 系统下 ifconfig 命令无网络接口 ens33
  8. ARKit何以从同类技术中胜出?
  9. 给页面title添加图标
  10. zabbix监控之zabbix源码部署 (安装篇)