当我们从机房收费系统开始后,我们的学习再也离不开了数据库的使用,而ADO与ADO.NET在vb和vb.net的使用正是我们强大的数据帮手。但是根据视频材料来看,ADO.NET与ADO有着很大的不同之处。工欲善其事必先利其器,所以好好研究一下吧。
三方面比较不同
第一,传输速度
首先使用接口的不同,ADO使用OLE DB接口基于微软的COM技术,COM封送提供有限数据类型,该数据类型是用COM标准定义。而ADO.NET使用ADO.NET接口并用.NET体系,ADO.NET数据集是基于XML格式,对数据类型没有限制。所以相对来说在传输过程中ADO.NET不需要数据类型转换,所以比ADO更有优势。
第二,数据库的访问方式
两者在对数据源不连接处理存在着比较明显的不同,在ADO.net中,将行数据读入数据集以后,在不连接的情况下使用,而ADO是通过调用OLE DB提供程序与数据库通信的。
具体的内容还是看图吧。
图一,ADO访问数据库的方式
图二,ADO.net访问数据库的方式
第三,运作方式
正是因为他们数据库访问方式的不同,也决定他们的运作不同。ADO的运作是一种在线方式,这代表无论进行怎样的操作都必须实时更新。ADO.net则使用离线方式。在访问数据的时候ADO.net会利用XML制作数据的一份副本,这就是ADO.net的连接数据库只需要这段时间需要在线。这样提高数据的安全性,更加便利。
使用对象
DataSet对象是数据在内存中的表示形式。在ADO中,想存储来自多个表的数据,必须使用JOIN命令进行连接。而ADO.net中直接存放多个表,形成虚拟数据库,并定义表之间的主从关系。前两个对象,大家在ADO的使用过程中就接触过了,一个是连接命令,另一个是传递命令。
关于DataAdapter,在开发过程中有些数据主要作用是只读,很少需要将其改变至底层的数据源。同样需要在内存中缓存处理数据来减少并不改变的数据被数据库调用的次数。其主要包含对连接对象以及当对数据库的读写操作的持续的改变返回至数据库的时候,填充DataSet对象。它将照顾所有开发人员与数据库的连接。
在ADO中Recordset对象被用于在内存中保持数据,而在一般情况下需要用客户端或服务器段光标访问数据,但是开销比较多,ADOrecordset对象的open方法,并指定使用adForwardOnly类型。而在Ado.net中直接提供DataReader对象来实现。检索的数据只能读取,不能修改。
【总结】
对于ADO.net我们并不陌生,ADO.net和ADO既有相似又有不同之处,能够编写对数据库服务器中的数据进行访问的操作的应用程序,并且易于使用,高速度,站磁盘空间少。不同之处更能说明两者是两种不同数据访问方式。两者各有千秋,都很值得我们深入探究学习!