Hopes

          Start Here..

           

          DataReader和DataSet的區別

          DataReader和DataSet的區別

          分類: 小知識點
          2010-06-24 14:44 111人閱讀 評論(0) 收藏 舉報

          1. 獲取數據的方式
          DataReader為在線操作數據, DataReader會一直占用SqlConnection連接,在其獲得數據過程中其它操作不可以再使用SqlConnection連接對象。
          DataSet為離線操作數據,DataSet會將數據一次性讀入內存,然后斷開連接,這時其它操作就可以使用SqlConnection連接對象。
          由于DataReader一次只讀取一行數據,所以占用內存較小。但DataReader為只進且只讀的,也就是只能單方向向前讀取,如果你想回頭去讀取上一條數據是不允許的,并且不允許其修改數據。
          由于DataSet一次性讀取所有數據,所以比較消耗資源,但也提高了靈活性,在斷開數據庫連接情況下你可以對數據進行任何增刪改查,按照任意的順序讀取數據,并可以將其寫回到數據庫。
          有一點需要注意,DataReader一次讀取一行并不意味了著這時在數據庫中的數據被修改,可以讀到新的數據,這是數據庫層面的保護.
          2.獲取數據的機制
          DataReader是通過IDbCommand.ExecuteReader來讀取數據。
          DataSet則是通過DbDataAdapter.Fill來填充數據
          所以DataReader在獲取數據時不能關閉連接。而DataSet則可以,因為DbDataAdapter已經將數據讀取到應用程序服務器中,所以在使用DataReader時一定要注意,及時關閉連接。
          3.其它區別
          DataReader讀取速度快于DataSet
          DataReader是數據提供者類,DataSet是一般性類,借助于DbDataAdapter來填充數據。
          因為DataSet是離線操作數據,所以在事務中使用鎖時要注意,因為DataSet填充數據后會斷開連接,也就會釋放鎖。

          posted on 2012-09-17 15:43 ** 閱讀(181) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           

          導航

          統計

          公告

          你好!

          常用鏈接

          留言簿(2)

          隨筆檔案

          文章分類

          文章檔案

          新聞檔案

          相冊

          收藏夾

          C#學習

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 高邑县| 新河县| 武强县| 介休市| 营口市| 健康| 溆浦县| 乳源| 宝山区| 桂平市| 谢通门县| 上虞市| 民权县| 鄢陵县| 刚察县| 渝中区| 秀山| 怀安县| 玉龙| 澄江县| 孟州市| 资溪县| 特克斯县| 伊宁市| 保靖县| 兰考县| 和平区| 察雅县| 瓦房店市| 射阳县| 黄梅县| 香港 | 比如县| 博湖县| 聂拉木县| 肇源县| 凤凰县| 独山县| 大厂| 包头市| 阿拉善左旗|