如何使用linq读取DataTable集合?AsQueryable() 和 AsEnumerable()区别?

一、准备工作

引入linq和data 相关的using命名空间

DataTable dt=new DataTable();//dt的来源可以是多个地方,比如:数据库,Excel等等。我这里使用Excel.

二、获取DataTable的列名及数据类型的方法

有了这个方法就不必考虑来源中的列名和数据类型,这里就可以查找到。

foreach (DataColumn dc in dt.Columns)//获取DataTable中的列名,这里的dt由于是从Excel导入所有列名为:F1,F2,F3,F4...
{
  MessageBox.Show(string.Format("列名:{0} ,数据类型:{1}", dc.ColumnName, dc.DataType));
}

三、进行linq获取操作
这里获取到的东西我们存到一个List里面。

List<string> s = (from a in dt.AsEnumerable()//每次用Linq来操作集合的时候都会用到AsQueryable()和AsEnumerable(),下面我们讲区别
                                  select a.Field<string>("F2")).ToList<string>();//这里的“F2”就是列名
foreach (var item in s)
{
  MessageBox.Show("Test:" + item.ToString());//读取结果显示
}

四、AsQueryable()和AsEnumerable()的区别?

区别就大了 AsEnumerable() 是 LINQ TO OBJECT

AsQueryable 是 LINQ TO SQL

时间: 2024-10-27 08:18:16

如何使用linq读取DataTable集合?AsQueryable() 和 AsEnumerable()区别?的相关文章

DataTable的筛选,过滤后绑定数据源的两种方法(DataTable的select和使用linq返回List集合)

一般数据处理使用DataTable的情况会很多,而我们很多时候会对得到的DataTable的数据进行筛选后绑定到Combobox.GridView.Repeat等控件中,现在分享一下两种DataTable在C#程序中的筛选处理方式. 我们先手动创建一个DataTable  DataTable dt=new DataTable(); DataColumn dtc = new DataColumn("id",typeof(string));            dt.Columns.Ad

Linq查询datatable的记录集合

通过linq查询datatable数据集合满足条件的数据集 1.首先定义查询字段的变量,比方深度 string strDepth=查询深度的值: var dataRows = from datarow in dataTable(须要查询的datatable数据集).AsEnumerable() where string.Compare(datarow.Field<string>("查询字段.比方深度字段"), strDepth) >= 100 && s

[MVC4]ASP.NET MVC4+EF5(Lambda/Linq)读取数据

继续上一节初始ASP.NET MVC4,继续深入学习,感受了一下微软的MVC4+EF5(EntityFramework5)框架的强大,能够高效的开发出网站应用开发系统,下面就看一下如何用MVC4+EF5来实现数据的读取. 实现效果 操作步骤 1.创建数据库 --创建表格-- Create table News ( id int identity(1,1) primary key, NewsTitle varchar(100)not null, CreateTime Datetime, Conte

linq to datatable 和lambda查询datatable

用Linq查询DataTable static DataTable table = new DataTable(); static DataColumn dc = new DataColumn(); static void Main() { Createtable(); table.Rows.Add(1, 2,"2010-1-1"); table.Rows.Add(2, 3, "2010-1-1"); table.Rows.Add(3, 4, "2010-

Linq 查询 List集合

总是听到身边的同事说起Linq ,知道上学的时候学过,可是自从毕业之后就再也没用过,总觉得是很牛的技能 ,可是当自己真正学会用的时候才发现,我去,So easy .废话不多说直接上代码吧 var list1 = (from f in listFund where f.UserId == Id && (f.ChangeType == 1 || f.ChangeType == 40) && (f.ReasonType == 40 || f.ReasonType == 1) se

linq 读取xml文件

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Linq; namespace linq_to_xml { internal class Program { private static void Main(string[] args) { #region XDocument xm

LINQ返回DataTable类型 list转dataset 转换为JSON对象

using System.Web.Script.Serialization; using System.Collections.Generic; using System.Reflection; using System.Data; using System; namespace CommonCode { public class Common { /// <summary> /// LINQ返回DataTable类型 /// </summary> public static Da

使用jQuery匹配文档中所有的li元素,返回一个jQuery对象,然后通过数组下标的方式读取jQuery集合中第1个DOM元素,此时返回的是DOM对象,然后调用DOM属性innerHTML,读取该元素 包含的文本信息

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head> <meta htt

AutoCAD.Net/C#.Net QQ群:193522571 将DataTable集合 B加入到DataTable A中,应用于两个或以上的只有单行数据的无主键的datatable的合并 Merge

1 /// <summary> 2 /// 将DataTable集合 B加入到DataTable A中,应用于两个或以上的只有单行数据的无主键的datatable的合并 3 /// </summary> 4 /// <param name="ArrOrigeon">A</param> 5 /// <param name="ArrAdded">B</param> 6 /// <returns