91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ADO.NET中DataReader使用技巧有哪些

發布時間:2021-11-03 14:30:01 來源:億速云 閱讀:150 作者:小新 欄目:編程語言

這篇文章主要介紹ADO.NET中DataReader使用技巧有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

◆在訪問相關 Command 的任何輸出參數之前,必須關閉 DataReader。
◆完成讀數據之后總是要關閉 DataReader。如果使用 Connection 只是用于返回 DataReader,那么關閉 DataReader 之后立刻關閉它。
另外一個顯式關閉 Connection 的方法是把 CommandBehavior.CloseConnection 傳遞給 ExecuteReader 方法,以確保相關的連接在關閉 ADO.NET DataReader 時被關閉。如果從一個方法返回DataReader,而且不能控制 DataReader 或相關連接的關閉,則這樣做特別有用。
◆不能在層之間遠程訪問 DataReader。DataReader 是為已連接好的數據訪問設計的。
◆當訪問列數據時,使用類型化訪問器,例如,GetString、GetInt32 等。這使您不用進行將 GetValue 返回的 Object 強制轉換成特定類型所需的處理。
◆一個單一連接每次只能打開一個 DataReader。在 ADO 中,如果打開一個單一連接,并且請求兩個使用只進、只讀游標的記錄集,那么 ADO 會在游標生存期內隱式打開第二個、未池化的到數據存儲區的連接,然后再隱式關閉該連接。對于 ADO.NET,“秘密”完成的動作很少。如果想在相同的數據存儲區上同時打開兩個 DataReaders,就必須顯式創建兩個連接,每個 DataReader 一個。這是 ADO.NET 為池化連接的使用提供更多控制的一種方法。
◆ExecuteReader 調用。這將 DataReader 的默認行為更改為僅在請求時將數據加載到內存。注意,CommandBehavior.SequentialAccess 要求順序訪問返回的列。也就是說,一旦讀過返回的列,就不能再讀它的值了。
◆如果已經完成讀取來自 DataReader 的數據,但仍然有大量掛起的未讀結果,就在調用 DataReader 的 Close 之前先調用 Command 的 Cancel。調用 DataReader 的 Close 會導致在關閉游標之前檢索掛起的結果并清空流。調用 Command 的 Cancel 會放棄服務器上的結果,這樣,DataReader 在關閉的時候就不必讀這些結果。如果要從 Command 返回輸出參數,還要調用 Cancel 放棄它們。如果需要讀取任何輸出參數,不要調用 Command 的 Cancel,只要調用 DataReader 的 Close 即可。

二進制大對象 (BLOB)

用 DataReader 檢索二進制大對象 (BLOB) 時,應該把 CommandBehavior.SequentialAccess 傳遞給 ExecuteReader 方法調用。因為 DataReader 的默認行為是每次 Read 都把整行加載到內存,又因為 BLOB 值可能非常大,所以結果可能由于單個 BLOB 而使大量內存被用光。SequentialAccess 將 DataReader 的行為設置為只加載請求的數據。然后還可以使用 GetBytes 或 GetChars 控制每次加載多少數據。

記住,使用 SequentialAccess 時,不能不按順序訪問 DataReader 返回的不同字段。也就是說,如果查詢返回三列,其中第三列是 BLOB,并且想訪問前兩列中的數據,就必須在訪問 BLOB 數據之前先訪問***列的值,然后訪問第二列的值。這是因為現在數據是順序返回的,并且 DataReader 一旦讀過該數據,該數據就不再可用。

以上是“ADO.NET中DataReader使用技巧有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

靖宇县| 电白县| 龙胜| 卢龙县| 万山特区| 鹤庆县| 视频| 西青区| 库车县| 永昌县| 西乌珠穆沁旗| 烟台市| 伊春市| 金平| 宁陕县| 菏泽市| 高台县| 铜山县| 商城县| 威宁| 平原县| 临武县| 遵义县| 余姚市| 峡江县| 花垣县| 沁阳市| 桂东县| 鄢陵县| 桦川县| 晋州市| 汉源县| 舞钢市| 淮北市| 多伦县| 香港| 江津市| 乐山市| 靖宇县| 金阳县| 灯塔市|