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

LINQ to DataSet學(xué)習(xí)筆記

開發(fā) 后端
這里介紹在使用LINQ to DataSet的時(shí)候需要注意以下幾個(gè)方面,包括Field可以完成從DBNull.Value到null的轉(zhuǎn)換等方面。

Linq有很多值得學(xué)習(xí)的地方,這里我們主要介紹LINQ to DataSet,包括介紹對(duì)IEnumeralbe進(jìn)行數(shù)據(jù)行的集合操作等方面。

要了解LINQ to DataSet,首先,讓我們來看看DataRowExtensions中的擴(kuò)展方法。在這個(gè)DataRowExtensions中的擴(kuò)展方法主要是從數(shù)據(jù)行中獲得字段的值(泛型的Field方法)和設(shè)置數(shù)據(jù)行中字段的值(泛型的SetField方法)。

  1. public static T Field<T>(this DataRow row,DataColumn column)  
  2. public static T Field<T>(this DataRow row,int columnIndex)  
  3. public static T Field<T>(this DataRow row,string columnName)  
  4. public static T Field<T>(this DataRow row,DataColumn column,DataRowVersion version)  
  5. public static T Field<T>(this DataRow row,int columnIndex,DataRowVersion version)  
  6. public static T Field<T>(this DataRow row,string columnName,DataRowVersion version)  
  7. public static void SetField<T>(this DataRow row,DataColumn column,T value)  
  8. public static void SetField<T>(this DataRow row,int columnIndex, T value)  
  9. public static void SetField<T>(this DataRow row,string columnName,T value) 

其中,row: 是我們要使用的數(shù)據(jù)行對(duì)象實(shí)例
◆column: 指定要返回(設(shè)置)其值的列
◆columnIndex: 指定要返回(設(shè)置)其值的列的索引
◆columnName: 指定要返回(設(shè)置)其值的列名
◆value: 要設(shè)置的新值,如果是null,將自動(dòng)轉(zhuǎn)換為DBNull.Value
◆version: 要獲取的數(shù)據(jù)行的版本

在使用LINQ to DataSet的時(shí)候需要注意以下幾個(gè)方面:

1.在對(duì)IEnumeralbe進(jìn)行數(shù)據(jù)行的集合操作如Distinct, Except, Union, Intersect, SequenceEqual時(shí),需要使用System.Data.DatarowComparer.Default作為比較器作為輸入?yún)?shù),以保證對(duì) DataRow是進(jìn)行值比較,而不是引用比較。當(dāng)然,如果GroupBy或者其他操作的key的類型是DataRow時(shí),也需要使用此比較器,以使我們得到我們期望的行為。

2.SetField可以將字段值設(shè)置為null,并且SetField方法將自動(dòng)將其轉(zhuǎn)換為DBNull.Value.

3.Field可以完成從DBNull.Value到null的轉(zhuǎn)換。也就是說,如果該字段的值是DBNull.Value 時(shí),F(xiàn)ield方法將自動(dòng)將其轉(zhuǎn)為null并返回。這個(gè)方法是強(qiáng)類型的,不需要象通過列名或者列索引返回字段值一樣將Object類型進(jìn)行造型成需要的類型(值類型進(jìn)行拆箱操作),(如果字段的值是DBNull.Value時(shí)進(jìn)行造型還將導(dǎo)致拋出異常)Field擴(kuò)展方法自動(dòng)做了這些處理,省去了開發(fā)人員手動(dòng)進(jìn)行這些處理的麻煩。

4.缺省情況下,數(shù)據(jù)行的Original版本中是沒有值的,試圖訪問時(shí)將導(dǎo)致異常發(fā)生。當(dāng)然,可以在訪問之前使用DataRow.HasVersion來進(jìn)行判斷,以防止異常的發(fā)生。也可以通過調(diào)用DataRow.AcceptChanges方法來建立Original版本來避免異常的發(fā)生。不帶LoadOptions參數(shù)的CopyToDataTable擴(kuò)展方法也會(huì)為返回的DataTable 自動(dòng)建立DataRow的Original和Current版本.

5.當(dāng)使用帶LoadOptions輸入?yún)?shù)的CopyToDataTable擴(kuò)展方法時(shí),必須為目標(biāo)DataTable指定主鍵列,否則,該函數(shù)只是將源DataTable追加到目標(biāo)DataTable的最后面。可能達(dá)不到期望更新的結(jié)果。

【編輯推薦】

  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)介
責(zé)任編輯:佚名 來源: 51cto.com
相關(guān)推薦

2009-09-15 13:59:18

LINQ to Dat

2009-09-15 16:52:19

Linq To Dat

2009-09-08 17:27:18

LINQ to Dat

2009-08-13 11:39:02

LINQ to Dat

2009-09-16 13:02:12

LINQ查詢子句

2009-09-17 16:20:43

Linq to sql

2009-09-08 09:12:12

LINQ構(gòu)建框架設(shè)計(jì)

2009-09-17 13:54:26

LINQ to XML

2009-09-07 17:09:45

Linq To Sql

2009-09-08 15:27:08

Linq Select

2009-09-10 17:38:04

LINQ技術(shù)

2009-09-11 12:08:09

Linq to SQL

2009-09-16 17:13:54

學(xué)習(xí)Linq

2009-09-17 13:38:42

LINQ to XML

2009-09-10 13:54:27

LINQ語法

2009-09-14 17:10:57

LINQ模糊查詢

2009-09-17 15:51:39

Linq to sql

2009-09-17 08:47:00

Linq查詢

2009-09-14 20:17:05

并行LINQ

2009-09-15 16:26:46

Linq排序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产视频久久 | 中文字幕第一页在线 | 国产综合在线视频 | 亚洲黄色在线免费观看 | 午夜在线观看免费 | 天天天操天天天干 | 欧美日韩在线一区二区三区 | 久久无毛 | 亚洲精品国产电影 | 久草视频在线播放 | 日韩视频专区 | 天堂在线www | 国产日韩精品一区 | 午夜网站视频 | 成人免费高清 | 99在线资源| 中文字幕一区二区在线观看 | 91精品综合久久久久久五月天 | 91精品久久久久久久久久入口 | 亚洲精品一区在线 | 亚洲精品欧洲 | 亚洲欧美综合精品久久成人 | 亚洲一区中文 | 欧美成人在线影院 | 久久亚洲视频网 | 欧美精品网站 | 国产福利在线 | 久久久高清 | 日韩在线不卡 | 精品视频一区二区 | 亚洲成人精品在线观看 | 美国黄色一级片 | 99精品国产一区二区三区 | 在线免费观看黄色网址 | 久久国产区 | 日韩精品在线播放 | 精品亚洲一区二区三区 | 午夜天堂精品久久久久 | 69精品久久久久久 | 米奇成人网| 国产欧美精品在线观看 |