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

相關文章
相關標籤/搜索