自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

創(chuàng)建ADO連接注意事項(xiàng)介紹說明

開發(fā) 后端
ADO連接為研發(fā)數(shù)據(jù)庫的技術(shù)人員對Team System承諾,提供相關(guān)工具,這樣可以為整個(gè)軟件開發(fā)周期少了不少彎路,降低工作的復(fù)雜性。

如果你希望使用更新后的值從服務(wù)器刷新數(shù)據(jù)集中的值,使用ADO連接。如果主鍵定義在數(shù)據(jù)表上,DataAdapter.Fill基于主鍵匹配新行,并把服務(wù)器的數(shù)據(jù)改成已存在的行。。。

經(jīng)常上網(wǎng)收集資料,自己看多了也能總結(jié)出一些東西,在這里究一些使用ADO.NET DataReader 獲得***性能的技巧來說誰,同時(shí)還回答了一些關(guān)于使用ADO.NET DataReader的常見問題。

◆在訪問相關(guān) Command 的任何輸出參數(shù)之前,必須關(guān)閉 DataReader。
◆完成讀數(shù)據(jù)之后總是要關(guān)閉 DataReader。如果使用 Connection 只是用于返回 DataReader,那么關(guān)閉 DataReader 之后立刻關(guān)閉它。
另外一個(gè)顯式關(guān)閉 Connection 的方法是把 CommandBehavior.CloseConnection 傳遞給 ExecuteReader 方法,以確保相關(guān)的連接在關(guān)閉 ADO.NET DataReader 時(shí)被關(guān)閉。如果從一個(gè)方法返回DataReader,而且不能控制 DataReader 或相關(guān)連接的關(guān)閉,則這樣做特別有用。
◆不能在層之間遠(yuǎn)程訪問 DataReader。DataReader 是為已連接好的數(shù)據(jù)訪問設(shè)計(jì)的。
◆當(dāng)訪問列數(shù)據(jù)時(shí),使用類型化訪問器,例如,GetString、GetInt32 等。這使您不用進(jìn)行將 GetValue 返回的 Object 強(qiáng)制轉(zhuǎn)換成特定類型所需的處理。
◆一個(gè)單一連接每次只能打開一個(gè) DataReader。在ADO連接中,如果打開一個(gè)單一連接,并且請求兩個(gè)使用只進(jìn)、只讀游標(biāo)的記錄集,那么ADO連接會(huì)在游標(biāo)生存期內(nèi)隱式打開第二個(gè)、未池化的到數(shù)據(jù)存儲(chǔ)區(qū)的連接,然后再隱式關(guān)閉該連接。對于 ADO.NET,“秘密”完成的動(dòng)作很少。如果想在相同的數(shù)據(jù)存儲(chǔ)區(qū)上同時(shí)打開兩個(gè) DataReaders,就必須顯式創(chuàng)建兩個(gè)連接,每個(gè) DataReader 一個(gè)。這是 ADO.NET 為池化連接的使用提供更多控制的一種方法。
◆ExecuteReader 調(diào)用。這將 DataReader 的默認(rèn)行為更改為僅在請求時(shí)將數(shù)據(jù)加載到內(nèi)存。注意,CommandBehavior.SequentialAccess 要求順序訪問返回的列。也就是說,一旦讀過返回的列,就不能再讀它的值了。#t#

如果已經(jīng)完成讀取來自 DataReader 的數(shù)據(jù),但仍然有大量掛起的未讀結(jié)果,就在調(diào)用 DataReader 的 Close 之前先調(diào)用 Command 的 Cancel。調(diào)用 DataReader 的 Close 會(huì)導(dǎo)致在關(guān)閉游標(biāo)之前檢索掛起的結(jié)果并清空流。調(diào)用 Command 的 Cancel 會(huì)放棄服務(wù)器上的結(jié)果,這樣,DataReader 在關(guān)閉的時(shí)候就不必讀這些結(jié)果。如果要從 Command 返回輸出參數(shù),還要調(diào)用 Cancel 放棄它們。如果需要讀取任何輸出參數(shù),不要調(diào)用 Command 的 Cancel,只要調(diào)用 DataReader 的 Close 即可。#t#

用 DataReader 檢索二進(jìn)制大對象 (BLOB) 時(shí),應(yīng)該把 CommandBehavior.SequentialAccess 傳遞給 ExecuteReader 方法調(diào)用。因?yàn)?DataReader 的默認(rèn)行為是每次 Read 都把整行加載到內(nèi)存,又因?yàn)?BLOB 值可能非常大,所以結(jié)果可能由于單個(gè) BLOB 而使大量內(nèi)存被用光。SequentialAccess 將 DataReader 的行為設(shè)置為只加載請求的數(shù)據(jù)。然后還可以使用 GetBytes 或 GetChars 控制每次加載多少ADO連接。

記住,使用 SequentialAccess 時(shí),不能不按順序訪問 DataReader 返回的不同字段。也就是說,如果查詢返回三列,其中第三列是 BLOB,并且想訪問前兩列中的數(shù)據(jù),就必須在訪問 BLOB 數(shù)據(jù)之前先訪問***列的值,然后訪問第二列的值。這是因?yàn)楝F(xiàn)在數(shù)據(jù)是順序返回的,并且ADO連接一旦讀過該數(shù)據(jù),該數(shù)據(jù)就不再可用。

責(zé)任編輯:chenqingxiang 來源: CSDN
相關(guān)推薦

2009-12-24 15:18:42

創(chuàng)建ADO.NET

2009-12-23 17:05:35

ADO.NET調(diào)用

2009-12-29 11:03:28

ADO代碼

2009-12-21 09:53:45

連接Oracle

2009-12-25 15:28:48

ADO類

2009-12-22 09:48:58

WCF枚舉類型

2010-01-26 16:54:58

學(xué)習(xí)C++

2011-06-24 09:23:02

SEO

2009-12-23 16:31:04

ADO.NET EF

2010-10-26 17:28:15

創(chuàng)建Oracle索引

2009-12-14 10:08:03

無線路由貓

2009-11-25 17:51:27

2009-12-15 17:47:17

VSIP

2011-05-26 11:22:04

SEO

2010-10-29 16:33:45

ORACLE存儲(chǔ)過程

2009-12-24 15:34:44

ADO步驟

2011-07-22 17:35:17

java路徑

2009-08-19 14:36:58

思科認(rèn)證CCNP

2010-01-04 16:18:13

ADO.NET連接池

2010-02-05 14:13:17

Android平臺(tái)
點(diǎn)贊
收藏

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