(转)Linq DataTable的修改和查询
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
namespace WebApplication_study.Linq
{
public partial class LinqStart : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = getDataTable.getData();//源数据
//Linq进行普通查询
var q1 = from dt1 in dt.AsEnumerable()//查询
orderby dt1.Field<int>("ID") descending//排序
where dt1.Field<int>("ID") > && dt1.Field<int>("ID") < //条件
select dt1;
Response.Write("查询结果为:<br/>");
foreach (var item in q1)//显示查询结果
{
//Response.Write("<br/>" + item.Field<string>("Name"));//两种写法均可
Response.Write("<br/>" + item["Name"]);
}
//查询结果用于新的DT
DataTable newDT = q1.CopyToDataTable<DataRow>();//经查询生成的DT可用于数据绑定
Response.Write("<br/><br/>新的DT的结果为:<br/>");
foreach (var item2 in newDT.AsEnumerable())//显示查询结果
{
Response.Write("<br/>" + item2["Name"]);
}
// 修改查询的结果
Response.Write("<br/>修改查询结果前:<br/>");
var q3 = from dt3 in dt.AsEnumerable()
select dt3;
foreach (var item in q3)
{
Response.Write("<br/>" + item["ID"] + " " + item["Name"] + " " + item["PID"] + " ");
}
Response.Write("<br/>修改查询结果后:<br/>");
foreach (var items in dt.AsEnumerable())
{
int PID = (int)items["PID"];
items.SetField<int>("PID", PID + );
}
foreach (var item in q3)
{
Response.Write("<br/>" + item["ID"] + " " + item["Name"] + " " + item["PID"] + " ");
}
//DataView测试
DataView dvDT = dt.AsDataView();
EnumerableRowCollection<DataRow> quert4 = from dv in dt.AsEnumerable() select dv;
DataView dvDTQ = quert4.AsDataView(); //linq调用本地方法
//定义本地方法
Response.Write("<br/>linq调用本地方法:<br/>");
int[] num = { , , , , , , , , };
var query = from i in num where check(i) select i;
foreach (var item in query)
{
Response.Write(item + " ");
}
}
/// <summary>
/// 本地方法示例
/// </summary>
/// <param name="num"></param>
/// <returns></returns>
public bool check(int num)
{
if (num > )
return true;
else
return false;
}
}
}
PS:如果出现指定转换无效的异常,说明查询语句里面有问题。一般是Field<T>的泛型有误,应当仔细检查DataTable中列的DataType。
然后还可可以这么写
IEnumerable<DataRow> query =
from order in orders.AsEnumerable()
where order.Field<DateTime>("OrderDate") > new DateTime(, , )
select order; // Create a table from the query.
DataTable boundTable = query.CopyToDataTable<DataRow>();
本文转载自:http://www.cnblogs.com/sunxf2011/archive/2011/07/08/2101008.html
(转)Linq DataTable的修改和查询的更多相关文章
- ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- linq根据传入数据集合查询对应子级数据
工作中经常用到的linq根据传入数据集合查询对应子级数据,整理共享,希望大家都能用得上,代码中doublesArray 为父节点对应ID数据集合,再根据ID数据集合查询全部子级数据. //获取缓存数据 ...
- linq依据传入数据集合查询相应子级数据
工作中经经常使用到的linq依据传入数据集合查询相应子级数据,整理共享,希望大家都能用得上,代码中doublesArray 为父节点相应ID数据集合,再依据ID数据集合查询所有子级数据. //获取缓存 ...
- 9_13学习完整修改和查询&&实体类,数据访问类
完整修改和查询:中间变量运用. 1.先查 2.执行操作 ---------------------------------------------------- namespace ADO.NET_小 ...
- ADO.NET(完整修改和查询、实体类,数据访问类)
一.完整修改和查询 在编写c#语句时需考虑到用户体验,例如在编写修改语句时,需要考虑到输入的内容在数据库中是否能够找到. 中间变量运用. 1.先查 2.执行操作 完整修改语句: bool has = ...
- HDU 3966 Aragorn's Story (树链点权剖分,成段修改单点查询)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3966 树链剖分的模版,成段更新单点查询.熟悉线段树的成段更新的话就小case啦. //树链剖分 边权修 ...
- linq里面似in的查询
1.linq里面似in的查询 List<string> source = new List<string>{ "aaa", "bbb" ...
- MVC客户管理(添加、修改、查询、分页)
ASP.NET MVC搭建项目后台UI框架—6.客户管理(添加.修改.查询.分页) 目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2 ...
- EFCore扩展:IQueryable(linq)或sql执行的查询缓存与清理
前言 上一篇讲述了执行sql和配置的一些功能,这篇说明IQueryable(linq)或执行sql的查询缓存与清理,包括扩展到将缓存存储到Redis中. 扩展类库源码: github:https:// ...
随机推荐
- C# 与vb.net 的Dictionary(字典)的键、值排序
项目中可能需要用到Dictionary 排序,于是先做了一个小demo ,网上搜索真的没有能满足我需要的,都是类似的,于是理解改造,一上午就在查找,实践中过去了.现在把它实现了,把代码贴出来,算是一个 ...
- python3 堆排序
思路: 1.建立堆 2.得到堆顶元素,为最大元素 3.去掉堆顶,将堆最后一个元素放到堆顶,此时可通过一次调整重新使堆有序. 4.堆顶元素为第二大元素. 5.重复步骤3,直到堆变空. 动画 代码: de ...
- redis安装配置记录
环境:CentOS7,最小化安装 安装gcc wget # yum upgrade # yum install gcc # yum install wget 下载并安装redis # wget htt ...
- L148
You don't know about real loss, because that only occurs when you love something more than you love ...
- 从头搭建一个React应用
node,webpack这些就不一一介绍怎么安装了,默认大家都知道. 一.npm install -g create-react-app 首先全局安装react的脚手架工具 create-react- ...
- 将安防IPC摄像机进行类似于萤石/乐橙/360水滴模式的互联网直播的几种方案
前言 在维护EasyDarwin开源项目的几年内,几乎市面上大大小小的技术需求都给接触了一遍,大团队.大背景有大需求,草根团队有草根团队的需求,然而这些需求近些年都有一个发展的趋势,那就是" ...
- RxJava 1.x 笔记:组合型操作符
最近去检查眼睛,发现度数又涨了,唉,各位猿多注意保护自己的眼睛吧! 前面学了 RxJava 的三种关键操作符: 创建型操作符 过滤型操作符 变换型操作符 读完本文你将了解第四种(组合型操作符): 组合 ...
- 如何预编译ASP.Net程序
打开Developer Command Prompt,执行命令 aspnet_compiler -v \Target -p 源文件夹地址 -f 目标文件夹地址
- openssl之aes加密(源码分析 AES_encrypt 与 AES_cbc_encrypt ,加密模式)
首先要了解AES加密是什么,以及几种加密模式的区别.之后才是编程.具体的编程案例,在下面的链接. openssl之aes加密(AES_cbc_encrypt 与 AES_encrypt 的编程案例) ...
- Django model.py表单设置默认值允许为空
blank=True 默认值为blank=Flase,表示默认不允许为空, blank=True admin级别可以为空 null=True 默认值为null=Flase,表示默认不允许为空 nu ...