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

1、准备工做数据库

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

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

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

有了这个方法就没必要考虑来源中的列名和数据类型,这里就能够查找到。orm

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

3、进行linq获取操做
这里获取到的东西咱们存到一个List里面。blog

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());//读取结果显示
}


4、AsQueryable()和AsEnumerable()的区别?string

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

AsQueryable 是 LINQ TO SQLclass

相关文章
相关标签/搜索