21.1.3 数据库特定的类
除了共享类外,ADO.NET还包含许多数据库特定的类,如下所示。这些类执行一组在System.Data命名空间中定义的标准接口,允许类按照以一般形式来使用。例如,SqlConnection和OleDbConnection类执行IDbConnection接口。
● SqlCommand、OleDbCommand、OracleCommand和ODBCCommand—— SQL语句的包装器或存储过程的调用。
● SqlCommandBuilder、OleDbCommandBuilder、OracleCommandBuilder和ODBCCommand Builder—— 用于从一个select子句中生成SQL语句(例如INSERT、UPDATE和DELETE语句)的类。
● SqlConnection、OleDbConnection、OracleConnection和ODBCConnection—— 数据库连接。类似于ADO Connection。
● SqlDataAdapter、OleDbDataAdapter、OracleDataAdapter和ODBCDataAdapter—— 用于存储选择、插入、更新和删除语句的类,因此可以用于生成DataSet和更新数据库。
● SqlDataReader、OleDbDataReader、OracleDataReader和ODBCDataReader—— 只向前的连接数据读取器。
● SqlParameter、OleDbParameter、OracleParameter和ODBCParameter—— 为存储过程定义一个参数。
● SqlTransaction、OleDbTransaction、OracleTransaction和ODBCTransaction——数据库事务处理,包装在一个对象中。
从上面的列表可以看出,每种对象都有4个类,分别用于.NET 1.1中的每个提供程序。在本章的后面部分,除非特别说明,否则前缀<provider>将用于表示所使用的类依赖于数据库提供程序。
ADO.NET类最重要的新特性是它们是以断开连接的方式工作,这在目前以Web为中心的环境中是非常重要的。我们常常把服务(例如在线书店)构建为连接一个服务器,检索一些数据,再在客户PC上处理这些数据,之后重新连接服务器,把数据传送回去,进行处理。ADO.NET的断开连接的本质就可以实现这种操作。
ADO 2.1引入了断开连接的记录集,允许从数据库中检索数据,把它们传送给客户机,进行处理,再重新连接服务器。但它们使用起来常常很繁琐,因为断开连接的工作方式不是一开始就设计好的。ADO.NET类则不同,除了一种情况(<provider> DataReader)外,它们都用于脱机处理数据库。
注意:
本章将介绍在.NET Framework中用于数据访问的类和接口,主要论述连接数据库时使用的SQL类,因为Framework SDK示例安装了一个MSDE数据库(SQL Server)。在大多数情况下,OleDb、Oracle和ODBC类类似于SQL代码。





