Linq&Lumda---LINQ to DataSet的DataTable操作
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 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"));
}
}
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() };
Linq&Lumda---LINQ to DataSet的DataTable操作的更多相关文章
- C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换
LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...
- .NET DataSet、DataTable操作记录
一直在习惯.net的编程思维,或是说C#吧.因为前几年一直在用PHP做站,现在用.net很不习惯,主要C#都依赖对控件.类的熟悉,不然很多功能都实现不了. 需求 最近做了一功能,从SQL Server ...
- LINQ系列:LINQ to DataSet的DataTable操作
LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...
- LINQ to DataSet的DataTable操作
1. DataTable读取列表 DataSet ds = new DataSet();// 省略ds的Fill代码DataTable products = ds.Tables["Produ ...
- Linq to SQL 简单的增删改操作
Linq to SQL 简单的增删改操作. 新建数据库表tbGuestBook.结构如下: 新建web项目,完成相应的dbml文件.留言页面布局如下 <body> <form id= ...
- 【ADO.NET基础知识】SqlConnection、command、DataSet 、DataTable、dataAdapter
1.使用Connection连接数据库的步骤: (1).添加命名空间 System.Data.SqlClient(注意:初学者经常会忘记) (2)定义连接字符串.连接SQL Server 数据库时: ...
- LINQ之LINQ to Objects(上)
LINQ概述 LINQ,语言集成查询(Language Integrated Query),它允许使用C#或VB代码以查询数据库相同的方式来操作不同的数据源. 1.LINQ体系结构 从上图可以看出,L ...
- C# 基础:DataTable操作、发邮件
本文出自:https://www.cnblogs.com/2186009311CFF/p/6865909.html DataTable操作 据参数删除为0的列:包括遍历.删除.取值 public st ...
- C# ~ 从 XML 到 Linq 到 Linq to XML
.XML 可扩展标记语言 (Extensible Markup Language), 标记 (markup) 是关键部分,是标准通用标记语言 (Standard Generalized Markup ...
随机推荐
- HDU3586 Information Disturbing(树形DP)
题目大概说一棵树有边权,要删掉一些边,使叶子到达不了树根1且删掉边的权和小于等于m,问删掉边中最大权的最小值能是多少. 考虑问题规模,与转移的时间复杂度,用这么个状态dp: dp[u][k]表示在u结 ...
- cocos2d ccmenulabel
// // TestMenu.hpp // mario // // Created by sun on 15/12/22. // // #ifndef TestMenu_hpp #define Tes ...
- BZOJ1175 : [Balkan2007]The stairways of Saharna
杨氏图表,维护若干个单调不下降队列. 每次新加入一个数时,先考虑第一个队列: 如果可以放在最后,则放在最后. 否则找到最小的可以替换的替换掉,再将替换的数放入第二个队列,以此类推. 最后$ans_i= ...
- 【POJ】3261 Milk Patterns
http://poj.org/problem?id=3261 题意:一个长度为n的串,要求最长的子串的长度且这个子串的出现次数不少于k次.(1<=n<=20000, 2<=k< ...
- 【BZOJ】1269: [AHOI2006]文本编辑器editor(Splay)
http://www.lydsy.com/JudgeOnline/problem.php?id=1269 这题RE2次啊,好不爽啊,我一直以为是splay的问题,其实是数组开小了......(我老犯这 ...
- asp.net 微信企业号办公系统-流程设计--流程步骤设置-策略设置
策略设置包括当前步骤的流转方式,处理人员,退回策略等设置. 流转类型:当前步骤后面有多个步骤时,此类型选择可以决定后续步骤的发送方式. 1.系统控制:由系统根据您在线上设置的流转条件来判断该发送到哪一 ...
- Servlet的生命周期,并说出Servlet和CGI的区别,Servlet与JSP的区别
一.Servlet 生命周期 1.加载 2.实例化 3.初始化 4.处理请求 5.销毁 二.Servlet与cgi的区别: Servlet处于服务器进程中,它通过多线程方式运行其service方法,一 ...
- 【回文串-Manacher】
Manacher算法能够在O(N)的时间复杂度内得到一个字符串以任意位置为中心的回文子串.其算法的基本原理就是利用已知回文串的左半部分来推导右半部分. 转:http://blog.sina.com.c ...
- iOS应用程序本地化
一.简介 * 使用本地化功能,可以轻松地将应用程序翻译成多种语言,甚至可以翻译成同一语言的多种方言 * 如果要添加本地化功能,需要为每种支持的语言创建一个子目录,称为”本地化文件夹”,通常使用.lpr ...
- java---相亲练习
public class wu{ public static void main(String[] args){ //TODO 自动生成的方法存根 int a = 0,b = 0,c = 0; int ...