如何使用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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM