成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

LINQ to DataSet查詢詳解

開發 后端
這里介紹使用LINQ to DataSet查詢數據,其功能主要是通過System.Data.DataRowExtions和System.Data.DataTableExtensions兩個靜態類中的擴展方法來公開的。

在向大家詳細介紹LINQ to DataSet查詢之前,首先讓大家了解下LINQ to DataSet主要是提供對離線數據的支持,然后全面介紹LINQ to DataSet查詢。

LINQ to DataSet主要是提供對離線數據的支持,只有在填充DataSet之后,我們才能使用LINQ to DataSet查詢數據。其功能主要是通過System.Data.DataRowExtions和System.Data.DataTableExtensions兩個靜態類中的擴展方法來公開的。LINQ to DataSet是LINQ to ADO.Net中的一部分,但這部分所占比重非常小,內容也比較少。

下面就讓我們首先來看看DataTableExtensions中的擴展方法:

  1. public static EnumerableRowCollection<DataRow> 
    AsEnumerable(this DataTable source)  
  2.  
  3. public static DataView AsDataView(this DataTable table)  
  4. public static DataView AsDataView<T>
    (this EnumerableRowCollection<T> source) where T : DataRow  
  5.  
  6. public static DataTable CopyToDataTable<T>
    (this IEnumerable<T> source) where T : DataRow  
  7. public static void CopyToDataTable<T>(this IEnumerable<T> source,
    DataTable table,LoadOption options) where T : DataRow  
  8. public static void CopyToDataTable<T>(this IEnumerable<T> source,
    DataTable table,LoadOption options,FillErrorEventHandler errorHandler)
    where T : DataRow 

從定義中就可以看出這三類主要是提供DataTable、DataView和IEnumerable三者之間的轉換。大家都知道LINQ to Object查詢主要是對IEnumerable序列進行的操作,這樣就使得DataTable、DataView和LINQ之間建立了一個轉換橋梁。

因此,在我們需要將DataTable應用于LINQ to DataSet查詢是要先調用AsEnumerable完成DataTable到LINQ的轉換。如果我們需要將LINQ to DataSet查詢的結果進行數據綁定時我們需要調用AsDataView的泛型版來完成LINQ到DataView的轉換。當然我們也可以使用CopyToDataTable來進行LINQ到DataTable的轉換。

注意:如果在我們完成了DataTable到LINQ(IEnumerable) 的轉換之后(也就是調用AsEnumerable擴展方法),需要進行兩個DataRow序列的集合操作如 Distinct,Union,Except,Intersect,SequenceEqual,這些操作都需要對數據源中的元素進行相等比較,由于缺省情況下都是調用數據源中的元素的GetHashCode和Equals操作來判斷的,對于DataRow而言就是判斷對象的引用是否相等,這樣可能會導致我們不期望的結果(DataRow里面的數據內容是相同的,但不是同一個對象),所以我們要使用 Distinct,Union,Except,Intersect,SequenceEqual帶IEqualityComparer的重載版本,使用 System.Data.DataRowComparer.Default作為參數。這個比較器類是.Net3.5專門為LINQ to DataSet新增加的,用于比較DataRow的值的,它是通過先比較DataColumn的數量,然后使用該列中類型的Equals方法進行比較。

不帶LoadOptions參數的CopyToDataTable方法將自動為每一行的每一個字段創建(更新)原始版本和當前版本,帶有 LoadOptions參數的CopyToDataTable重載版本可以讓你指定是創建(更新)原始版本或是當前版本,或者兩者都填充。 LoadOptions選項有下面三個選項值可以選擇:
◆OverwriteChanges: 創建(更新)每一列的當前值和原始值
◆PreserveChanges: 創建(更新)每一列的原始值
◆Upset: 創建(更新)每一列的當前值
以上介紹LINQ to DataSet查詢。

【編輯推薦】

  1. LINQ查詢操作經驗總結
  2. LINQ遍歷多個數組深入剖析
  3. Linq查詢Access數據文件淺談
  4. LINQ構建框架設計學習筆記
  5. LINQ重要組成部分簡介
責任編輯:佚名 來源: 51cto.com
相關推薦

2009-09-08 17:57:54

LINQ to Dat

2009-09-15 13:59:18

LINQ to Dat

2009-08-13 11:39:02

LINQ to Dat

2009-09-14 14:49:12

LINQ查詢基礎知識

2009-08-27 09:13:28

LINQ查詢表達式

2009-11-27 09:41:56

LINQ

2009-09-15 15:45:00

Linq聯合查詢

2009-09-18 14:51:19

LINQ TO SQL

2009-09-09 16:53:53

LINQ查詢語法

2009-09-10 16:28:17

LINQ查詢

2009-09-14 10:09:26

LINQ查詢結果

2009-09-14 10:13:02

LINQ查詢操作

2009-09-15 10:46:04

LINQ to SQL

2009-09-16 10:38:43

LINQ查詢

2009-09-17 13:15:20

LINQ查詢

2009-09-16 10:08:06

LINQ查詢

2011-07-26 14:57:39

2009-09-14 16:17:03

什么是LINQ To

2010-08-11 09:40:44

LINQ

2009-09-09 10:54:52

Linq存儲過程返回
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩综合视频 | 亚洲精品欧美一区二区三区 | 欧美日韩精品综合 | 精品av久久久久电影 | av电影一区 | 日韩一区二区精品 | 日韩免费网站 | 国产分类视频 | www.久久精品 | 毛片网站免费观看 | 国产精品中文字幕在线观看 | 日韩免费视频一区二区 | 久久久久久国产一区二区三区 | 亚洲一区二区三区视频 | 欧美日韩一卡二卡 | 欧美xxxx日本| 久在线观看| 国产精品爱久久久久久久 | 亚洲三区在线观看 | 国产精品不卡一区二区三区 | 国产一区二区三区视频 | 91精品国产综合久久精品图片 | 毛片a级 | 成人av在线播放 | 91精品国产综合久久福利软件 | 奇米影视在线 | 亚洲视频在线观看免费 | 中文字幕在线精品 | 天天操夜夜操免费视频 | 欧美一级欧美三级在线观看 | 亚洲欧洲成人 | 欧美精品综合在线 | 久久久久久久久中文字幕 | 日本欧美国产 | 国产成人精品一区二区三区 | 国产精品高潮呻吟久久av野狼 | 中文字幕 在线观看 | 欧美性video 精品亚洲一区二区 | 日韩欧美一区在线 | 伊人狠狠干 | 欧美日韩高清在线观看 |