zoukankan      html  css  js  c++  java
  • SqlDataReader和SqlDataAdapter的区别

    SqlDataReader 高效,功能弱,只读访问
    SqlDataAdapter 强大,要求资源也大一点

    SqlDataReader 只能在保持跟数据库连接的状态下才可以读取。。。

    SqlDataAdapter 大多情况下是一次性读取一个表,然后填充到DataSet中,然后就可以断开跟数据库的连接了。

    两者区别主要是   在线 和 离线 的区别。。。。。

    一:
    SqlDataReader rd;
    rd=cmd.ExecuteReader();

    比较高效,如果只是显示数据,当然要用这个

    二:
    SqlDataAdapter adapter=new SqlDataAdapter(cmd);
    ADO.Net里有两类,连线 离线
    离线的就是DataSet等,可以把数据取出来放进去,然后断开连接,节省服务器资源
    当你在本地做了更改后,再连上数据库进行更新
    这种取数据和更新数据的工作就是由SqlDataAdapter做的,他是“延长的电线”--这个比喻好像出自《ado.net技术内幕》

    SqlDataReader //基于连接,只读访问 适合数据量较小
    SqlDataAdapter //基于非连接,适于数据量较大时,可以另行修改,最后再把修改结果返回给数据库。要求资源也大一点

    SqlDataReader像一个链表一样,只能往一个方向读数据
    SqlDataAdapter的功能就像他们说得非常强大了

    1.SqlDataReader返回的是一个数据读写器,只能一条条的读,操作起来不灵活,一般在只读的时候才用到。
    2.SqlDataAdapter返回的是数据集或者表,可以对其中的数据作任意操作

    datareader是将数据库查询到的记录逐条返回给.net程序,每返回一条,.net程序处理一条,直至返回完毕,在未返回完毕前,是一直占用数据库连接的,所以它是面向连接的技术。 

    SqlDataAdapter是将数据库返回的查询一次性装入内存,然后供.net程序调用,并且会立即释放数据库连接。所以它是面向非连接的。

    快,当然是datareader,但是当你的连接池紧张时,就要用“空间换时间”了,即SqlDataAdapter
    一般并发100以上,而且是需要“高速度服务”的情况用DR。

  • 相关阅读:
    利用世界杯,读懂 Python 装饰器
    利用python开发app实战
    Python协程(真才实学,想学的进来)
    Python 中的 10 个常见安全漏洞,以及如何避免(上)
    Python学到什么程度才可以去找工作?掌握这4点足够了!
    Hadoop Yarn调度器的选择和使用
    CSS 预处理器 Stylus分享
    我想写小说了怎么回事...
    新随笔-- from笔试
    我是不是有点胖了
  • 原文地址:https://www.cnblogs.com/eaysun/p/4138039.html
Copyright © 2011-2022 走看看