zoukankan      html  css  js  c++  java
  • 如何使用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

  • 相关阅读:
    c#+linux+mono+Redis集群(解决无法连接Redis的问题)
    实验楼----奇妙的音乐
    实验楼----PHP大法
    实验楼----PHP代码审计(sha1、md5)
    实验楼----变异凯撒
    storm安装
    storm问题汇总
    windows下linux子系统安装
    mongoDB学习记录
    excel vba 不可查看
  • 原文地址:https://www.cnblogs.com/sdd53home/p/5459331.html
Copyright © 2011-2022 走看看