重新审视SqlDataReader的使用
来源:互联网 发布:知敬畏守规矩作文 编辑:程序博客网 时间:2024/05/16 11:53
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";
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
SqlCommand cmd1 = new SqlCommand("select * from customers", conn);
SqlCommand cmd2 = new SqlCommand("select * from orders", conn);
SqlDataReader rdr1 = cmd1.ExecuteReader();
// next statement causes an error prior to SQL Server 2005
SqlDataReader rdr2 = cmd2.ExecuteReader();
// now you can reader from rdr1 and rdr2 at the same time.
conn.Close();
Streamline your Data Connections by Moving to MARS, by Laurence Moroney, DevX.com >>
- 重新审视SqlDataReader的使用
- 应该重新审视的javascript
- 重新审视winxp 20%的“保留带宽”
- 企业信息化:重新审视OA的目的
- sqldatareader:使用SqlDataReader注意的几点
- SqlDataReader的使用方式
- 重新审视自己
- 重新审视REST
- 重新审视这个世界
- 重新审视Mobile Web
- 重新审视Mobile Web
- 创新的边疆:重新审视IT业的想象力
- [Hacking]重新审视IPv6的漏洞扫描和渗透测试
- CSS reset的重新审视 – 避免样式重置
- CSS reset的重新审视 – 避免样式重置
- 从中本聪的白皮书来重新审视区块链
- CSS reset的重新审视 – 避免样式重置
- 重新审视进程间的通信(一)
- 我要配的电脑
- 使用asp.net 2.0的CreateUserwizard控件如何向自己的数据表中添加数据
- 拒绝了对对象 'sp_sdidebug'(数据库 'master',所有者 'dbo')的 EXECUTE 权限
- MSSQL2005数据库备份语句
- 十天学会php之第九天
- 重新审视SqlDataReader的使用
- 活动目录联合服务(ADFS)
- 我的互联网
- OpenSource 的 Free是自由 非免费
- Treating HTML like XML using HtmlAgilityPack, and doing it inside of an XSLT too [转载]
- C++中实现变长数组
- "Ascend.Net" Windows Forms Controls
- 十天学会php之第十天
- ----------------------------MSSQL多列取最大或者最小值---------------