博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重新审视SqlDataReader的使用
阅读量:6989 次
发布时间:2019-06-27

本文共 1180 字,大约阅读时间需要 3 分钟。

ADO.NET 1.x 利用SqlDataReader读取数据,针对每个结果集需要一个独立的连接。当然,你还必须管理这些连接并且要付出相应的内存和潜在的应用程序中的高度拥挤的瓶颈代价-特别是在数据集中的Web应用程序中。
      ADO.NET 2.的一个新特征多数据结果集(Multiple Active Result Sets,简称MARS)-它允许在单个连接上执行多重的数据库查询或存储过程。这样的结果是,你能够在单个连接上得到和管理多个、仅向前引用的、只读的结果集。目前实现这个功能的数据库只有Sql Server 2005。所以当我们针对Sql Sever 2005的时候,需要重新审视DataReader对象的使用。使用SqlServer 2005,可以在一个Command对象上同时打开多个DataReader,节约数据库联接所耗费的服务器资源,在实际开发中普遍存在的一种典型的从数据库中读写数据的情形是,你可以使用多重连接而现在只用一个连接就足够了。例如,如果你有一些来自于几个表中的数据-它们不能被联结到一个查询中,那么你就会有多重的连接-每个连接都有一个与之相关连的命令用于读取数据。同样,如果你正在向一个表写数据,那么你需要另外一个连接或连接集合-如果有多个表要被更新的话。
例如下面的代码
               //MultipleActiveResultSets=true打开联接
              string connstr = "server=(local);database=northwind;integrated security=true;
MultipleActiveResultSets=true"; 
None.gif
              SqlConnection conn = new SqlConnection(connstr);
None.gif            conn.Open();
None.gif            SqlCommand cmd1 = new SqlCommand("select * from customers", conn);
None.gif            SqlCommand cmd2 = new SqlCommand("select * from orders", conn);
None.gif            SqlDataReader rdr1 = cmd1.ExecuteReader();
None.gif           // next statement causes an error prior to SQL Server 2005
None.gif            SqlDataReader rdr2 = cmd2.ExecuteReader();
None.gif           // now you can reader from rdr1 and rdr2 at the same time.
              conn.Close();
             
本文转自 张善友 51CTO博客,原文链接:http://blog.51cto.com/shanyou/75019,如需转载请自行联系原作者
你可能感兴趣的文章
常用安装rpm包--必备命令
查看>>
表单验证 018
查看>>
Java字节码3-使用ByteBuddy实现一个Java-Agent
查看>>
程序有没有可能输出y=2而x!=1的情况?如果可能,x可能会是什么值?如果不可能,为什么?...
查看>>
[笔记] mysql-proxy 实现主从读写分离
查看>>
给GRUB中的菜单加入密码。
查看>>
保留原有插件,快速升级Eclipse发行版本
查看>>
7月第1周国内域名商TOP10:万网DNSPOD差距缩小
查看>>
debian配置sambd
查看>>
整理grep实战文本搜索过滤技巧
查看>>
Samba通过Openldap统一认证
查看>>
我的友情链接
查看>>
阿里云CDN技术掌舵人文景:相爱相杀一路狂奔的这十年
查看>>
运维工程师必备LVS_NAT && LVS_ DR配置
查看>>
Authentication token manipulation error
查看>>
解决了前些天安装ROR环境时候的一个遗留问题
查看>>
vim删除命令
查看>>
Openstack之网络操作篇
查看>>
观察者模式
查看>>
好程序员web前端分享WebSocket协议
查看>>