zoukankan      html  css  js  c++  java
  • MultipleActiveResultSets

    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();

  • 相关阅读:
    kafka 生产者消费者 api接口
    湖南省第九届大学生计算机程序设计竞赛 Interesting Calculator
    Debugger DataSet 调试时查看DataSet
    DELPHI 常用虚拟键:VK_
    DBGRID控件里可以实现SHIFT复选吗?怎么设置?
    在dbgrid中如何多行选中记录(ctl与shift均可用)
    如何在DBGrid里实现Shift+“选择行”区间多选的功能!
    按着shift键对dbgrid进行多条记录选择的问题(50分)
    Delphi实现DBGrid Shift+鼠标左键单击 多选
    Delphi定位TDataSet数据集最后一条记录
  • 原文地址:https://www.cnblogs.com/codeloves/p/2965455.html
Copyright © 2011-2022 走看看