亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SqlDataAdapter與SqlDataReader

SqlDataAdapter與SqlDataReader

陪伴而非守候 2019-12-09 11:18:28
使用SqlDataAdapter和SqlDataReader從數據庫獲取數據之間有什么區別?我專門研究它們的優缺點以及它們的速度和內存性能。謝謝
查看完整描述

3 回答

?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

SqlDataReader:

  • 將連接保持打開狀態,直到完成操作(不要忘記關閉它?。?/p>

  • 通常只能迭代一次

  • 對于更新回數據庫沒有太大用處

另一方面,它:

  • 一次只在內存中記錄一個記錄,而不是整個結果集(這可能很大)

  • 在那一次迭代中速度最快

  • 使您可以更快地開始處理結果(一旦第一條記錄可用)

SqlDataAdapter / DataSet

  • 讓您在連接完成后立即關閉連接,甚至可以自動為您關閉連接

  • 所有結果都在內存中可用

  • 您可以根據需要進行多次遍歷,甚至可以按索引查找特定記錄

  • 有一些內置的功能可以更新回數據庫

以:

  • 很多更高的內存使用

  • 您等到所有數據加載完畢后再使用其中任何一個

因此,實際上這取決于您的工作,但是在需要僅由數據集支持的內容之前,我傾向于使用DataReader。SqlDataReader非常適合綁定到只讀網格的常見數據訪問情況。

有關更多信息,請參閱正式的Microsoft文檔。


查看完整回答
反對 回復 2019-12-09
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

SqlDataAdapter通常用于填充DataSet或DataTable,因此在連接關閉后您將有權訪問數據(斷開訪問)。


SqlDataReader是一個僅前進和連接的快速游標,通常比填充DataSet / DataTable更快。


此外,使用SqlDataReader,您一次可以處理一條記錄,而不會在內存中保存任何數據。顯然,使用DataTable或DataSet確實有內存分配開銷。


如果您不需要將數據保留在內存中,那么僅用于呈現內容,請使用SqlDataReader。如果要以斷開連接的方式處理數據,請選擇DataAdapter填充DataSet或DataTable。


查看完整回答
反對 回復 2019-12-09
  • 3 回答
  • 0 關注
  • 738 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號