博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(转)Linq DataTable的修改和查询
阅读量:5904 次
发布时间:2019-06-19

本文共 3072 字,大约阅读时间需要 10 分钟。

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
("ID") descending//排序 where dt1.Field
("ID") > 2 && dt1.Field
("ID") < 6//条件 select dt1; Response.Write("查询结果为:
"); foreach (var item in q1)//显示查询结果 { //Response.Write("
" + item.Field
("Name"));//两种写法均可 Response.Write("
" + item["Name"]); } //查询结果用于新的DT DataTable newDT = q1.CopyToDataTable
();//经查询生成的DT可用于数据绑定 Response.Write("
新的DT的结果为:
"); foreach (var item2 in newDT.AsEnumerable())//显示查询结果 { Response.Write("
" + item2["Name"]); } // 修改查询的结果 Response.Write("
修改查询结果前:
"); var q3 = from dt3 in dt.AsEnumerable() select dt3; foreach (var item in q3) { Response.Write("
" + item["ID"] + "   " + item["Name"] + "   " + item["PID"] + "   "); } Response.Write("
修改查询结果后:
"); foreach (var items in dt.AsEnumerable()) { int PID = (int)items["PID"]; items.SetField
("PID", PID + 100); } foreach (var item in q3) { Response.Write("
" + item["ID"] + "   " + item["Name"] + "   " + item["PID"] + "   "); } //DataView测试 DataView dvDT = dt.AsDataView(); EnumerableRowCollection
quert4 = from dv in dt.AsEnumerable() select dv; DataView dvDTQ = quert4.AsDataView(); //linq调用本地方法 //定义本地方法 Response.Write("
linq调用本地方法:
"); int[] num = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var query = from i in num where check(i) select i; foreach (var item in query) { Response.Write(item + " "); } } ///
/// 本地方法示例 /// ///
///
public bool check(int num) { if (num > 5) return true; else return false; } }}

PS:如果出现指定转换无效的异常,说明查询语句里面有问题。一般是Field<T>的泛型有误,应当仔细检查DataTable中列的DataType。

  然后还可可以这么写

IEnumerable
query = from order in orders.AsEnumerable() where order.Field
("OrderDate") > new DateTime(2001, 8, 1) select order;// Create a table from the query.DataTable boundTable = query.CopyToDataTable
();

 

本文转载自:http://www.cnblogs.com/sunxf2011/archive/2011/07/08/2101008.html

转载于:https://www.cnblogs.com/wpcnblog/p/3879917.html

你可能感兴趣的文章
lagp,lacp详解
查看>>
LVS之DR模式原理与实践
查看>>
Docker的系统资源限制及验证
查看>>
c++ ios_base register_callback方法使用
查看>>
Java中为什么需要Object类,Object类为什么是所有类的父类
查看>>
angularjs-paste-upload
查看>>
linux基础命令 head
查看>>
objective c:import和include的区别, ""和<>区别
查看>>
The Shared folder with you
查看>>
sax方式解析XML学习笔记
查看>>
Springboot配置(上)
查看>>
java--Eclipse for mac 代码提示(代码助手,代码联想)快捷键修改
查看>>
left join on/right join on/inner join on/full join on连接
查看>>
template.helper 多参数
查看>>
Android 四大组件之一(Activity)
查看>>
扫描(一)
查看>>
Centos7安装rabbitmq server 3.6.0
查看>>
iostat命令学习
查看>>
html video的url更新,自动清缓存
查看>>
【11】ajax请求后台接口数据与返回值处理js写法
查看>>