博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LINQ系列:LINQ to DataSet的DataTable操作
阅读量:4457 次
发布时间:2019-06-08

本文共 3163 字,大约阅读时间需要 10 分钟。

 

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
rows = from p in products.AsEnumerable() select p; foreach (DataRow row in rows) { Console.WriteLine(row.Field
("ProductName")); }
DataSet ds = new DataSet();// 省略ds的Fill代码DataTable products = ds.Tables["Product"]; var rows = products.AsEnumerable() .Select(p => new { ProductID = p.Field
("ProductID"), ProductName = p.Field
("ProductName"), UnitPrice = p.Field
("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
("ProductName");

2. DataTable查询

var rows = products.AsEnumerable()    .Where(p => p.Field
("UnitPrice") > 10m) .Select(p => new { ProductID = p.Field
("ProductID"), ProductName = p.Field
("ProductName"), UnitPrice = p.Field
("UnitPrice") });

3. DataTable数据排序

var rows = products.AsEnumerable()    .Where(p => p.Field
("UnitPrice") > 10m) .OrderBy(p => p.Field
("SortOrder")) .Select(p => new { ProductID = p.Field
("ProductID"), ProductName = p.Field
("ProductName"), UnitPrice = p.Field
("UnitPrice") });
var expr = from p in products.AsEnumerable()            orderby p.Field
("SortOrder") select p; IEnumerable
rows = expr.ToArray(); foreach (var row in rows) { Console.WriteLine(row.Field
("ProductName")); }
var expr = from p in ds.Tables["Product"].AsEnumerable() orderby p.Field
("SortOrder"), p.Field
("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
("CategoryID") == c.Field
("CategoryID") && p.Field
("UnitPrice") > 10m select new { ProductID = p.Field
("ProductID"), ProductName = p.Field
("ProductName"), CategoryName = c.Field
("CategoryName") };

5. DataTable分组

var query = from p in ds.Tables["Product"].AsEnumerable() group p by p.Field
("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
("ProductName")); } }

  查询Product中每个CategoryID的数目:

var expr = from p in ds.Tables["Product"].AsEnumerable() group p by p.Field
("CategoryID") into g select new { CategoryID = g.Key, ProductsCount = g.Count() };

 

http://www.cnblogs.com/libingql/p/4045807.html

转载于:https://www.cnblogs.com/chen110xi/p/6407218.html

你可能感兴趣的文章
三维绿幕标定与跟踪
查看>>
android ProgressBar自定义半圆形进度条
查看>>
hdu.5212.Code(莫比乌斯反演 && 埃氏筛)
查看>>
python学习记录一
查看>>
使用LINQ的Skip和Take函数分批获取数据
查看>>
IP通信基础 4月1日
查看>>
KeyProvider
查看>>
空指针为什么能调用成员函数?
查看>>
用MySQL的存储过程来实现一些经典函数
查看>>
React (2) -- State and Lifecycle
查看>>
【转】在EmEditor上编译并运行JAVA
查看>>
关于SqlDateTime溢出的问题
查看>>
jquery下php与ajax的数据交换方式
查看>>
魅蓝Note有几种颜色 魅蓝Note哪个颜色好看
查看>>
使用PullToRefresh实现下拉刷新和上拉加载
查看>>
透明度百分比与十六进制转换
查看>>
HBase表预分区
查看>>
NSBundle,UIImage,UIButton的使用
查看>>
vue-cli3 中console.log报错
查看>>
GridView 中Item项居中显示
查看>>