Linq操作Datable
类别:编程学习 浏览量:694
时间:2017-8-28 Linq操作Datable
Linq操作Datable一、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"));
}
}
您可能感兴趣
- 如何查看linq生成的sql
- linq中AsEnumerable和AsQueryable的区别
- linq中延迟执行
- Linq中where查询
- linq中join用法
- linq中group by
- linq xml 查询
- linq to sql 中Concat、Union、Intersect、Except
- linq 排序
- LINQ TO SQL 中join
- list使用linq排序
- linq 数据类型转换
- Linq中select查询
- 使用 LINQPad 调试linq以及lambda表达式
- linq not in 查询
- Linq操作Datable
- 爱情可以当饭吃吗(怎么回复)
- 高考数学题(高考数学题基础题占多少分)
- 没钱只能吃土(没钱要吃土了幽默短信发朋友圈)
- 今年考高会很难吗(今年高考会考试吗)
- 盘古开天地 他创造了世界,谁创造了盘古 盘古是伏羲吗(盘古开天地他创造了世界)
- 关于队徽 你了解这些么 二(关于队徽你了解这些么)
热门推荐
- elasticsearch 索引创建过程(使用elasticsearch定时删除索引数据)
- laravel服务器设置教程(laravel框架模型、视图与控制器简单操作示例)
- vuejs指令解析(Vue.js中的计算属性、监视属性与生命周期详解)
- thinkphp表单提交不到数据(ThinkPHP5.1表单令牌Token失效问题的解决)
- ASP.NET URLRewriter伪静态
- docker数据库如何初始化(Docker启动PostgreSQL时创建多个数据库的解决方案)
- linux磁盘分区创建步骤(Linux parted磁盘分区实现步骤解析)
- nginx负载均衡与动静分离(Nginx配置之实现多台服务器负载均衡)
- linux磁盘分区创建步骤(Linux parted磁盘分区实现步骤解析)
- python在mysql创建数据库(python3对接mysql数据库实例详解)