从 ADO 迁移到 ADO.NET(一)
2006-07-23 11:17:26 来源:WEB开发网ADO 中的 Recordset,其行为(功能)依赖其属性设置的不同而不同,而在 ADO.NET 中 Recordset 被分解成许多不同的对象和方法。 从而避免了 Recordset 大而全的弊端,着眼于使各个对象各司其职,因此 ADO.NET 中的这种分解可以显著提高效率。ADO 中的 Recordset 可以是个连接的行集也可以是个非连接的行集。它可以充当一个前 向(forward-only)只读的游标,或者允许行集中位置的前移、后移和向中间移动。ADO 的 Recordset 允许对数据修改直接在数据库中完成,允许保存数据修改并以批处理形式发送给数据库。问题在于 ADO 的 Recordset 承担了太多的功能。ADO.NET 中将这些功能分解为多个对象去 分别完成特定的任务,因而 ADO Recordset 的功能被分为 DataSet 对象、DataReader 对象、DataAdapter 和 Command 对象。
前向、只读游标要求与数据源一直处于连接状态。ADO.NET 使用 DataReader 对象确保当其打开时,就一直处于连接状态。DataReader 专为 某一数据提供程序如 SQL Server、Oracle 或更通用的 OLE DB 数据提供程序而编写。因此,SqlDataReader 对象可以连接到 SQL Server 数据库,并且充当一个 firehose 游标的角色,在大量的记录间循环。SqlDataReader 也具有对查询结果的快速前向(fast-forward-only)访问功能。它从数据库的查询结果中检索到一条记录, 并保持连接为打开状态,以便成功检索下一条记录。ADO.NET 的 DataReader 由于不支持 ADO Recordset 的所有功能,因而效率 极其高。Figure 2 中的例子演示了如何在传统的 ADO 和 ADO.NET 中实现一个只前向移动的游标的例子。值得注意的是在 ADO.NET 中,DataReader 对象的 Read 方法自动移动位置到下一条记录。这就避免了开发者在使用传统的 ADO 时,由于疏忽了调用ADO Recordset 的 MoveNext 方法而导致死循环的情况的出现。
- ››Adobe推出用于iOS设备创建PDF文件的应用
- ››Adobe发布Acrobat X 不支持苹果iOS系统
- ››Adobe公司展示plenoptic lenses技术
- ››迁移DHCP服务器
- ››迁移集群环境中的 WebSphere Commerce
- ››Adobe:移动版Flash实测性能高于HTML5视频
- ››Adobe更新Web版Photoshop 无需注册即可使用
- ››Adobe Flash 10.1被曝支持Android效果不佳
- ››Adobe Flash 10.1 for Android 版本被曝工作状况不...
- ››Adobe CEO:不担心iPhone和iPad封Flash技术
- ››Adobe为iPad、Android平台发布免费Photoshop
- ››Adobe发布Android版Flash 10.1 Beta 3
更多精彩
赞助商链接