14.2.2 ADO.NET中的类
ADO.NET中的类很多,从一次数据库访问过程看,一般需要4个或5个类,它们的顺序如图14-4所示。
|
图14-4 数据库访问中类的顺序 |
在使用这些类时,除了基础类DataSet外,其他类的数据提供程序要一致,如SQLConnection、SQLCommand、SQLDataReader是一致的,OLEDbConnection、OLEDbCommand、OLEDbDataAdapter是一致的。
下面我们就以OLEDB数据提供程序为例来说明这些类。
1.基础类DataSet
这个类是数据在内存中驻留时的表示形式。无论什么数据源,它在内存中的数据表示是一致的,因此它可以连接任何数据源。DataSet数据集可以包含任意数量的数据表,以及所有表的约束、索引和关系。它没有与数据源联系的能力,因此在使用DataSet对象之前,必须要有一个可以建立初始化数据的对象,即DataAdapter对象。
该类的主要属性和方法如表14-1。
表14-1 DataSet类的主要属性和方法
类 别
|
名 称
|
说 明
|
属性
|
DataSetName
|
获取或设置当前DataSet的名称
|
Namespace
|
获取或设置DataSet的命名空间
|
Tables
|
获取包含在DataSet中的表的集合
|
Prefix
|
获取或设置一个XML前缀,该前缀是DataSet的命名空间的别名
|
方法
|
Clear
|
通过移除所有表中的所有行来清除数据
|
Clone
|
复制DataSet的结构,不复制任何数据
|
Copy
|
复制该DataSet的结构和数据
|
ReadXml
|
将XML架构和数据读入DataSet
|
ReadXmlSchema
|
将XML架构读入DataSet
|
WriteXml
|
从DataSet写XML数据,还可以选择写架构
|
WriteXmlSchema
|
写XML架构形式的DataSet结构
|
2.OleDbDataAdapter
这个类可以建立并初始化数据集(即DataSet),与DataSet对象结合起来对数据源执行SQL命令,提供DataSet对象所需要的存取数据,可视为DataSet对象的操作核心,是DataSet对象与数据操作对象之间的沟通媒介。
该类的主要属性和方法如表14-2所示。
表14-2 OleDbDataAdapter类的主要属性和方法
类 别
|
名 称
|
说 明
|
属性
|
DeleteCommand
|
获取或设置SQL语句或存储过程,用于从数据集中删除记录
|
SelectCommand
|
获取或设置SQL语句或存储过程,用于选择数据源中的记录
|
UpdateCommand
|
获取或设置SQL语句或存储过程,用于更新数据源中的记录
|
InsertCommand
|
获取或设置SQL语句或存储过程,用于将新记录插入到数据源中
|
方法
|
Fill
|
在DataSet中添加或刷新行,以便与ADO Recordset或Record对象中的行相匹配
|
Update
|
为DataSet中每个已插入、已更新或已删除的行调用相应的INSERT、UPDATE或DELETE语句
|
GetFillParameters
|
获取当执行SQL SELECT语句时由用户设置的参数
|
3.OleDbDataReader
提供一个单向向前移动且只读的记录集合,可以读取由Command对象执行命令所产生的数据,只能与Command对象一起使用。
该类的主要属性和方法如表14-3所示。
表14-3 OleDbDataReader类的主要属性和方法
类 别
|
名 称
|
说 明
|
属性
|
Depth
|
获取一个值,用于指示当前行的嵌套深度
|
FieldCount
|
获取当前行中的列数
|
HasRows
|
获取一个值,用于指示OleDbDataReader是否包含一行或多行
|
IsClosed
|
指示是否可关闭数据读取器
|
Item
|
获取以本机格式表示的列的值
|
RecordsAffected
|
通过执行SQL语句获取更改、插入或删除的行数
|
方法
|
GetBoolean
|
获取指定列的布尔值形式的值
|
GetChar
|
获取指定列的字符形式的值
|
GetDateTime
|
获取指定列的DateTime对象形式的值
|
GetDecimal
|
获取指定列的Decimal对象形式的值
|
GetDouble
|
获取指定列的双精度浮点数形式的值
|
GetFloat
|
获取指定列的单精度浮点数形式的值
|
GetGuid
|
获取指定列的值作为全局唯一标识符(GUID)
|
GetInt16
|
获取指定列的16位有符号整数形式的值
|
GetInt32
|
获取指定列的32位有符号整数形式的值
|
GetString
|
获取指定列的字符串形式的值
|
IsDBNull
|
获取一个值,该值指示列中是否包含不存在的或已丢失的值
|
Read
|
使OleDbDataReader前进到下一条记录
|
4.OleDbCommand
这个类可以操作数据源文件,对数据源下达操作数据库的命令,即传送SQL命令,执行Action Query命令。
该类的主要属性和方法如表14-4所示。
表14-4 OleDbCommand类的主要属性和方法
类 别
|
名 称
|
说 明
|
属性
|
CommandText
|
获取或设置要对数据源执行的SQL语句或存储过程
|
CommandTimeout
|
获取或设置在终止对执行命令的尝试并生成错误之前的等待时间
|
Connection
|
获取或设置OleDbCommand的此实例使用的OleDbConnection
|
方法
|
ExecuteNonQuery
|
针对Connection执行SQL 语句并返回受影响的行数
|
ExecuteReader
|
将CommandText发送到Connection并生成一个 OleDbDataReader
|
ExecuteScalar
|
执行查询,并返回查询所返回的结果集中第一行的第一列,忽略其他列或行
|
ResetCommandTimeout
|
将CommandTimeout属性重置为默认值
|
5.OleDbConnection
该类主要负责与数据源的连接,建立程序与数据源之间的联系,这是数据库操作的第一步。
该类的主要属性和方法如表14-5所示。
表14-5 OleDbCommand类的主要属性和方法
类 别
|
名 称
|
说 明
|
属性
|
ConnectionString
|
获取或设置用于打开数据库的字符串
|
ConnectionTimeout
|
获取在尝试建立连接时终止尝试并生成错误之前所等待的时间
|
Database
|
获取当前数据库或连接打开后要使用的数据库的名称
|
DataSource
|
获取数据源的服务器名或文件名
|
Provider
|
获取在连接字符串的“Provider = ”子句中指定的OLE DB提供程序的名称
|
State
|
获取连接的当前状态
|
方法
|
Close
|
关闭到数据源的连接
|
Open
|
使用ConnectionString所指定的属性设置打开数据库连接
|
以上是以OLEDB数据提供程序为例来说明ADO.NET中的类,其他数据提供程序中的类属性与方法与此类似,这里就不再一一列举。在每一种数据提供程序的类中,除了DataSet类是公用类外,其他类均需要相应的命名空间支持,而且不可互相串用。