ADO.NET:不仅仅只是对ADO的升级

ZDNet软件频道 时间:2003-06-03 作者:ZDNet China |  我要评论()
本文关键词:
有时候,新改进的产品和原有产品的差别非常巨大,以至于其相似之处只是名称。对于ADO.NET来说,情况就是这样的;它和ADO同名,但是两者的相同点仅此而已。
本文译自Builder.com,未经许可请勿转载 有时候,新改进的产品和原有产品的差别非常巨大,以至于其相似之处只是名称。这就意味着这个(改进的)产品肯定是新的,但是仍然需要进一步检查才能确定它是否真的得到了改进。对于ADO.NET来说,情况就是这样的;它和ADO同名,但是两者的相同点仅此而已。
从头开始

经典的ADO和ADO.NET里的一切都是从Connection(连接)对象开始的。Connection对象表示对数据源的唯一物理连接,但是两者就这么一点相同之处。尽管Connection对象的不同更加复杂(也就是说,连接是如何处理的),但是这些不同点的范围是很大的。在经典的ADO里,在连接被创建和建立的时候,应用程序能够按照自己的需要保持这个连接。事实上,应用程序没有被限制只能建立一个连接;它们可以建立多个连接。但是由于连接是有限的资源,所以这种方法还需要考虑其他一些问题。

ADO.NET对连接采取了不同的方法。连接只被保持足够长的时间来完成一项操作。一旦这项操作被完成,Recordset就被立即断开。命令的结果被读入Dataset,在这里这些结果能够被处理,即使它们同数据源已经断开。虽然经典的ADO也能够进行离线处理,但是ADO是一个极其好的例子,能够说明有可能同轻易实现之间的差别。

在ADO.NET里,节省连接资源的方法同其处理更新的方法是一样的。当Dataset发生变化的时候,由于ADO.NET的离线属性,这些变化不会立即反映到真实的表格上。要让变化“真正地”发生,你就需要使用DataAdapter对象,它被用来进行填充操作以及从Dataset或者对Dataset进行更新。

ADO.NET的DataAdapter对象有四个方法来从数据源取回数据或者对数据源更新数据。这些方法是:SelectCommandInsertCommandUpdateCommandDeleteCommand。这些方法最好的地方是:一旦知道了名称,你就它们能够做什么了。

说再见

在经典的ADO里,Recordset曾是访问数据的主要方法。它就像执行查询一样简单,使用从一个或者多个表格请求得来的列就能够创建一个Recordset。在多个行(记录)被返回的情况下,就要通过使用movemoveNextmovePreviousmoveLast或者moveFirst这些方法来实现导航。当然不是所有这些方法都能使用,因为使用了只能向前的指针(forward-only cursor),所以在这种情况下只能允许使用moveNextmoveLastmove(如果向前移动)。

在ADO.NET里,Recordset已经被取消了,而指针也只留有其概念。它们已经被提供相同功能的数据类所取代。例如,我用过的大多数经典的ADO指针都是只能向前、只读的,因为我是那些相信最好尽快就能完成输入输出的开发人员之一。随着ADO.NET的出现,由DataReader对象提供了只能向前的、只读的指针所提供的功能。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134