当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 使用ADO.NET2.0提升数据交互性能(1)

ASP.NET
Asp.net 时间操作基类(支持短日期,长日期,时间差)
asp.net 获取机器硬件信息(cpu频率、磁盘可用空间、内存容量等)
asp.net 数据库备份还原(sqlserver+access)
Asp.Net 数据操作类(附通用数据基类)
Asp.net 弹出对话框基类(输出alet警告框)
Asp.net 文件上传类(取得文件后缀名,保存文件,加入文字水印)
Asp.net Socket客户端(远程发送和接收数据)
Asp.net 字符串操作基类(安全,替换,分解等)
Asp.Net数据输出到EXCEL表格中
asp.net Gridview里添加汇总行
asp.net UpdatePanel的简单用法
asp.net ajaxControlToolkit FilteredTextBoxExtender的简单用法
this connector is disabled错误的解决方法
sql事务应用积累
asp.net Page.Controls对象(找到所有服务器控件)
在asp.NET中字符串替换的五种方法
ASP.NET缓存方法分析和实践示例代码
asp.net 在DNN模块开发中遇到的resx怪问题
ASP.NET State service状态服务的问题解决方法
asp.net 结合mysql存储过程进行分页代码

ASP.NET 中的 使用ADO.NET2.0提升数据交互性能(1)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 175 ::
收藏到网摘: n/a

前言:

这篇文章起源于在公司写的一个PPT,但是由于PPT本身的限制很多内容无法表达或是详细的解释,于是变下定了决心。写篇文档!

在这篇文章里我将尽量简单的描述下ADO.NET 2.0的新特性,尤其是配合SQL Server 2005所展现出来的强大实力。如果想进一步了解ADO.NET 2.0编程方面的话,可以去阅读Glenn Johnson的--"ADO.NET 2.0高级编程[微软推荐丛书] ".定价:46元,网络购书的话打了折只要30块就可以了。

一:功能强大的ADO2.0

2005年底(2005年10月)与 SQL Server 2005一起出现的是 .NET Framework 2.0 版本,其中用来访问数据库的 ADO.NET类也升级到 ADO.NET 2.0 版。

ADO.NET 2.0 除了增强旧功能外,也提供了相当多的新功能,包含了以基础类为本(base-class-based)的数据源提供程序(provider)模型、异步访问架构、批处理更新与大量数据复制(bulk copy)、SQL Server 2005 的回调通知、单一连接同时多执行结果集(MARS)、执行统计、强化的 DataSet 类等等。换句话说,若要有效发挥 SQL Server 2005 的功能,前端应用程序最好用 ADO.NET 2.0 来开发。

ADO.NET 2.0 提供了相当多的新增功能,一些与数据源提供程序无关,也就是访问各种数据库都可以用到的功能,但有很大的一部分是专属于 SQL Server 2005,针对 SQL Server 2005 的新功能提供给前端应用程序开发使用。

 
二: 使用多数据结果集(仅限2005)

在之前版本的 SQL Server 同一时间一条连接只能传递一个 SELECT 语法执行后返回的结果集。如果想在一次连接后返回多个查询内容只能使用类似如下的方法来实现:

以下为引用的内容:

SqlDataAdapter   myDataAdapter   =   new   SqlDataAdapter("StoredProcedureName",myConnection);  
  myDataAdapter.SelectCommand.CommandType   =   CommandType.StoredProcedure;  
   
  myDataAdapter.SelectCommand.Parameters.Add("@sqlstr",sqlstr);  
  DataSet   ds   =   new   DataSet();  
  myDataAdapter.Fill(ds);  
  return   ds;  
  ds.Tables[0],ds.Tables[1],ds.Tables[2],分别对应三个结果集

SQL Server 2005提供了在同一条连接上可以同时传递多个没有游标结构(cursorless)的结果集(也称为默认结果集),此功能称为 Multiple Active Resultsets(MARS)。如此可以节省需要同时打开的连接数,但要注意的是连接字符串设置要加上 MultipleAct-iveResultSets=true 属性,否则默认不启动多数据结果集的功能。

以下为引用的内容:

           string connstr = "server=(local);database=northwind;integrated security=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.