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)  編輯  收藏


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


          網站導航:
           

          導航

          統計

          公告

          你好!

          常用鏈接

          留言簿(2)

          隨筆檔案

          文章分類

          文章檔案

          新聞檔案

          相冊

          收藏夾

          C#學習

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 冀州市| 洛宁县| 兴国县| 资中县| 当雄县| 富川| 余庆县| 恩施市| 彭阳县| 芮城县| 邛崃市| 普格县| 宜川县| 宁强县| 灵璧县| 正定县| 罗城| 射洪县| 云安县| 仙游县| 肃南| 千阳县| 安吉县| 将乐县| 镇安县| 建德市| 礼泉县| 保德县| 揭阳市| 盐城市| 阳朔县| 吴堡县| 隆尧县| 安徽省| 兴安县| 永州市| 定安县| 广安市| 剑河县| 揭西县| 黄石市|