Linq操作Datable
来源:互联网 发布:淘宝客服那那里应聘 编辑:程序博客网 时间:2024/06/08 20:17
一、Datable简单查询
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);}
二、Datable代where过滤条件的查询
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") });
三、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;
四、多个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") };
五、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")); }}
阅读全文
0 0
- Linq操作Datable
- linq操作
- LinQ的级联操作
- Linq Order操作
- Linq GroupBy操作
- Linq的Set操作
- LINQ操作数据库
- XML的LINQ操作
- LINQ中的group操作
- LINQ查询操作--投影
- LINQ查询操作--聚合
- LINQ查询操作--筛选
- LINQ查询操作--排序
- LINQ查询操作--组合
- LINQ操作说明
- linq 的简单操作
- linq 的简单操作
- linq之like操作
- JavaSE基础知识学习—封装
- C# 如何给Word文档添加超链接及设置超链接的样式
- R语言中内外层list互换
- Linux和Windows下的NC(Netcat)命令测试端口连通性
- clojure-web-server-benchmarks, web服务器基准测试
- Linq操作Datable
- setTimeout配合requestAnimationFrame
- Splunk 网络App和Add-on整理总结
- CanvasInput, HTML5 Canvas 文本输入
- Android项目和依赖的lib SDK版本冲突合并
- 单例模式
- java 栈的分析
- MyBatis之Mapper.xml获取数据库类型
- gif-movie-view, 用于显示GIF动画的Android视图小部件