LINQ to DataSet的DataTable操作
来源:互联网 发布:音频剪辑 for mac 编辑:程序博客网 时间:2024/04/30 23:18
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 products select 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") descending select 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") > 10m select 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 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")); }}
查询Product中每个CategoryID的数目:
var expr = from p in ds.Tables["Product"].AsEnumerable() group p by p.Field<int>("CategoryID") into g select new { CategoryID = g.Key, ProductsCount = g.Count() };
0 0
- LINQ to DataSet的DataTable操作
- LINQ系列:LINQ to DataSet的DataTable操作
- LINQ系列:LINQ to DataSet的DataTable操作
- LINQ to DataSet/DataTable
- Linq to datatable 操作
- Linq to DataTable 操作
- Linq to DataTable 解决DataSet不支持System.nullable
- Using LINQ to manipulate data in DataSet/DataTable
- Linq to DataSet的Distinct用法
- linq学习 Linq to DataSet
- LINQ(LINQ to DataSet)
- c#中,对DataSet、DataTable的操作
- LINQ to DataSet
- LINQ to DataSet 【转载】
- LINQ To DataSet
- Linq to Dataset
- LINQ TO DataSet Overview
- linq to Dataset
- 网页嵌入百度地图和使用百度地图api自定义地图的详细步骤
- c++程序计时
- 爬取糗事百科
- android用Adapter实现ListView的初始化报错android.widget.LinearLayout cannot be cast to android.widget.TextView
- xib上控件不显示,或者为nil
- LINQ to DataSet的DataTable操作
- Cocos、Lua游戏内存释放之我见
- 1. 用U盘安装Centos6.5 + Win7 双系统
- 在storyboard中点击控件,右边状态栏显示 No Applicable
- 二叉查找树
- 关于ZIGBEE端点的一点理解
- Socket深入学习
- RTLinux 和 Xenomai 系统在mini2440的移植——usb无线网卡死机问题
- 修改Ubuntu16.04文件数、进程数限制!