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

相关文章

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

2、PF-Net点云补全

2、PF-Net 点云补全 PF-Net论文链接:PF-Net PF-Net (Point Fractal Network for 3D Point Cloud Completion)是一种专门为三维点云补全设计的深度学习模型。点云补全实际上和图片补全是一个逻辑,都是采用GAN模型的思想来进行补全,在图片补全中,将部分像素点删除并且标记,然后卷积特征提取预测、判别器判别,来训练模型,生成的像

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

类的load方法和initialize方法对比

1. load方法在main()之前被调用,而initialize方法在main()之后调用 load方法实际是在load_images过程中被调用的。load_images会将当前应用依赖的所有镜像(动态库)加载到内存,在在加载中首先是对镜像进行扫描,将所有包含 load 方法的类加入列表 loadable_classes ,然后从这个列表中逐一调用其所包含的 load 方法。 +[XXCl

JavaScript正则表达式六大利器:`test`、`exec`、`match`、`matchAll`、`search`与`replace`详解及对比

在JavaScript中,正则表达式(Regular Expression)是一种用于文本搜索、替换、匹配和验证的强大工具。本文将深入解析与正则表达式相关的几个主要执行方法:test、exec、match、matchAll、search和replace,并对它们进行对比,帮助开发者更好地理解这些方法的使用场景和差异。 正则表达式基础 在深入解析方法之前,先简要回顾一下正则表达式的基础知识。正则

【HarmonyOS】-TaskPool和Worker的对比实践

ArkTS提供了TaskPool与Worker两种多线程并发方案,下面我们将从其工作原理、使用效果对比两种方案的差异,进而选择适用于ArkTS图片编辑场景的并发方案。 TaskPool与Worker工作原理 TaskPool与Worker两种多线程并发能力均是基于 Actor并发模型实现的。Worker主、子线程通过收发消息进行通信;TaskPool基于Worker做了更多场景化的功能封装,例

一些数学经验总结——关于将原一元二次函数增加一些限制条件后最优结果的对比(主要针对公平关切相关的建模)

1.没有分段的情况 原函数为一元二次凹函数(开口向下),如下: 因为要使得其存在正解,必须满足,那么。 上述函数的最优结果为:,。 对应的mathematica代码如下: Clear["Global`*"]f0[x_, a_, b_, c_, d_] := (a*x - b)*(d - c*x);(*(b c+a d)/(2 a c)*)Maximize[{f0[x, a, b,

claude和chatgpt对比:哪一个更适合你?

前言 我们都知道,Claude和ChatGPT都是当前人工智能领域中备受关注的对话生成模型,作为国外AI模型两大巨头,好像他们的实力都不相上下呀! 这时就会有很多同学疑惑,那我如果想选择AI,到底是选择Claude,还是ChatGPT呢?哪个更好呢?他们之间有什么不同独特的地方呢?他们又分别适合在哪些场景使用呢? 技术背景 Claude是由Anthropic公司开发的高性能模型,而Chat

.NET 自定义过滤器 - ActionFilterAttribute

这个代码片段定义了一个自定义的 ASP.NET Core 过滤器(GuardModelStateAttribute),用于在控制器动作执行之前验证模型状态(ModelState)。如果模型状态无效,则构造一个 ProblemDetails 对象来描述错误,并返回一个 BadRequest 响应。 代码片段: /// <summary>/// 验证 ModelState 是否有效/// </