本章讨论如何使用ADO.NET获取C#程序中的数据,主要介绍如下内容:
● 连接数据库:如何使用新的SqlConnection 和OleDbConnection类连接数据库,以及断开与数据库的连接。
● 执行命令:ADO.NET有命令对象的概念,该对象可以直接执行SQL命令,也可以执行带返回值的存储过程。这里将深入讨论命令对象上的各种选项,并列举一些示例来说明如何为Sql和OleDB类的每个选项使用命令。
● 存储过程:如何使用命令对象来调用存储过程,这些存储过程的结果如何集成到高速缓存在客户机上的数据中。
● ADO.NET对象模型:这与ADO中可用的对象完全不同,本节将讨论DataSet、DataTable、DataRow和DataColumn类。DataSet也可以包含表之间、约束之间的关系。
● 使用XML和XML模式:我们将讨论XML框架它是构建ADO.NET的基础。
与其他章节一样,可以从Wrox网站www.wrox.com上下载本章示例的代码。下面首先简要介绍ADO.NET。
21.1 ADO.NET概述
ADO.NET比现有API在技术上高出很多。它与ADO仅仅是名称类似,类和访问数据的方法则完全不同。
ADO (ActiveX Data Objects)是一个COM组件库,在过去的几年中,这些组件有许多版本。在目前的版本2.7中,ADO主要包含Connection、Command、Recordset和Field对象。打开与数据库的连接,把一些数据选出来,放在记录集中,这些数据由字段组成,接着处理这些数据,并在服务器上进行更新,然后关闭连接。ADO还引入了概念:断开连接的记录集,当不适合使连接打开相当长的时间时,就可以使用该概念。
ADO还有几个没有完全解决的问题,其中最著名的就是笨拙的断开连接的记录集。对这个支持的需求要比以往“以Web为中心”的计算更高,所以我们采用了一种新方式。ADO.NET编程和ADO(不仅仅是名称)有许多相似之处,所以从ADO中升级不会很困难。而且,如果使用的是SQL Server,有一组托管的新类,可以很好地发挥出数据库的最佳性能。
ADO.NET附带了4个数据库客户命名空间,一个用于SQL Server,另一个用于Oracle,第3个用于ODBC数据源,第四个用于通过OLEBC实现的数据库。如果数据库不是SQL Server或Oracle,就应使用OLE DB,除非还能使用ODBC。





