日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
LINQ to DataSet查詢?cè)斀?/div>

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

創(chuàng)新互聯(lián)公司專注于欽州企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開(kāi)發(fā),商城網(wǎng)站制作。欽州網(wǎng)站建設(shè)公司,為欽州等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站建設(shè),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

LINQ to DataSet主要是提供對(duì)離線數(shù)據(jù)的支持,只有在填充DataSet之后,我們才能使用LINQ to DataSet查詢數(shù)據(jù)。其功能主要是通過(guò)System.Data.DataRowExtions和System.Data.DataTableExtensions兩個(gè)靜態(tài)類中的擴(kuò)展方法來(lái)公開(kāi)的。LINQ to DataSet是LINQ to ADO.Net中的一部分,但這部分所占比重非常小,內(nèi)容也比較少。

下面就讓我們首先來(lái)看看DataTableExtensions中的擴(kuò)展方法:

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

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

因此,在我們需要將DataTable應(yīng)用于LINQ to DataSet查詢是要先調(diào)用AsEnumerable完成DataTable到LINQ的轉(zhuǎn)換。如果我們需要將LINQ to DataSet查詢的結(jié)果進(jìn)行數(shù)據(jù)綁定時(shí)我們需要調(diào)用AsDataView的泛型版來(lái)完成LINQ到DataView的轉(zhuǎn)換。當(dāng)然我們也可以使用CopyToDataTable來(lái)進(jìn)行LINQ到DataTable的轉(zhuǎn)換。

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

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

【編輯推薦】

  1. LINQ查詢操作經(jīng)驗(yàn)總結(jié)
  2. LINQ遍歷多個(gè)數(shù)組深入剖析
  3. Linq查詢Access數(shù)據(jù)文件淺談
  4. LINQ構(gòu)建框架設(shè)計(jì)學(xué)習(xí)筆記
  5. LINQ重要組成部分簡(jiǎn)介

當(dāng)前標(biāo)題:LINQ to DataSet查詢?cè)斀?
文章URL:http://m.5511xx.com/article/cdioehs.html