ADO.NET (二)—— ADO和ADO .NET对比

2024-08-27 22:32
文章标签 net 对比 ado

本文主要是介绍ADO.NET (二)—— ADO和ADO .NET对比,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  

                   ADO.NET (二)—— ADO和ADO .NET对比


   
  我们知道ADO.NET的两大核心组件分别是Data Provider和DataSet。如果说

DataSet是ADO.NET的心脏,那么Data Provider绝对是ADO.NET的左臂右膀。

Data  Provider提供了访问外部数据数据源的可能性,而且外部的数据源是多样的。本

文将详细说明.NET数据提供程序的作用以及如何访问不同的数据源。
     
   详情细看《ADO.NET技术》


               


         

           







ADOADO.NET的详细比较:

        

          


1、可伸缩性:

      

     a)   ADO:因为在ADO中,默认情况下是使用连接的Recordset对象、数据库锁定


和活动数据库连接,以长时间地争夺有限的数据库资源;

              

    b)   ADO.NET:对数据库数据进行断开连接的访问,无需进行长时间地维护数据库锁定


或者有效数据库连接,没有对有限的数据库资源的争夺。

 


2、 可编程性:

              a)   ADO:所有Recordset字段数据类型都是COM Variant数据类型,并通常和数据


库表中的字段名相对应;

                

           b)   ADO.NET:使用XML的强类型化的编程特征。数据是自我描述的,因为代码项


名对应于代码所处理的真实问题。DataSetDataReader对象中的数据是强类型化的,使


代码更容易阅读和编写;

     


3、断接访问

                a)  ADO:由Recordset提供,但必须显式编码。对于Recordset对象,在默认情况


下是通过调用OLE DB提供程序来和数据库通信;

               

             b)  ADO.NET:对DataAdapter对象使用标准化的调用,来和数据库通信。该对象可


以和OLE DB数据提供程序或直接与SQL Sever数据提供程序通信;

              

4、表之间的关系:

            a)   ADO:需要对单个结果表中的多个数据库表使用JOIN查询来组装数据,并提供


层次结构记录集,不过它们很难使用;

           

            b)   ADO.NET:支持DataRelation对象,将一个DataTable对象中的行和另一


DataTable对象中的行关联起来;      

 


 

5、驻留留内存数据表达方式:

          1)   ADO:使用Recordset对象保存单行数据,很像数据库表;

          

         2)   ADO.NET:使用DataSet对象,该对象可以包含由DataTable对象表示的一个或多个表;

         


        

6、   数据导航:

                 a)  ADO:使用.MoveNext方法顺序遍历Recordset中的行;

               

               b)  ADO.NETDataSet使用导航范例对一个表中的行进行无序访问。对该数据的


访问类似于访问集合或数组中的数据。这对于DataTableRows集合来说是可能的,它允


许通过索引来访问行。按照关系从一个表中的行导航到另一个表中的相应行;




7.   通过防火墙发送数据:

                a)   ADO:这对于ADO来说,比较成问题,因为防火墙通常用于防止系统级请


求,如COM编组;

                

             b)   ADO.NETADO.NET支持这一功能,因为ADO.NETDataSet对象使


XMLXML可以通过防火墙;

     



8、 共享各层间或组件间的断开连接数据:

                 a)   ADO:使用COM编组以发送断开连接的数据集,它只支持由COM标准定义的


数据类型。需要进行类型转换,这要求使用系统资源;

               

              b)   ADO.NET:以XML格式发送DataSetXML格式对数据类型没有限制,不需要类 型转换;





小结:


 进行对比之后,自己的思路更加的清晰明了,但是更多的还是要到实践中去掌握和了解。



      

        

                  






这篇关于ADO.NET (二)—— ADO和ADO .NET对比的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112961

相关文章

C#利用Free Spire.XLS for .NET复制Excel工作表

《C#利用FreeSpire.XLSfor.NET复制Excel工作表》在日常的.NET开发中,我们经常需要操作Excel文件,本文将详细介绍C#如何使用FreeSpire.XLSfor.NET... 目录1. 环境准备2. 核心功能3. android示例代码3.1 在同一工作簿内复制工作表3.2 在不同

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

Java实现本地缓存的四种方法实现与对比

《Java实现本地缓存的四种方法实现与对比》本地缓存的优点就是速度非常快,没有网络消耗,本地缓存比如caffine,guavacache这些都是比较常用的,下面我们来看看这四种缓存的具体实现吧... 目录1、HashMap2、Guava Cache3、Caffeine4、Encache本地缓存比如 caff

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

MySQL中读写分离方案对比分析与选型建议

《MySQL中读写分离方案对比分析与选型建议》MySQL读写分离是提升数据库可用性和性能的常见手段,本文将围绕现实生产环境中常见的几种读写分离模式进行系统对比,希望对大家有所帮助... 目录一、问题背景介绍二、多种解决方案对比2.1 原生mysql主从复制2.2 Proxy层中间件:ProxySQL2.3

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.