2024年4月11日发(作者:)
C# 中OleDb的相关应用
2007-09-24 13:06:44| 分类: 技术类 | 标签: |字号大中小 订阅
使用OleDb托管提供者
如果您熟悉了某个托管提供者,那么就可以很容易地操作其他提供者。首先来看一下如何使
用OleDb托管提供者进行连接。当您需要连接到除MS SQL Server之外的数据源时,就得
使用定义在中的类型。表A-12列出了一些核心的类型。
表A-12 命名空间的类型
类型
OleDbCommand
OleDbConnection
OleDbDataAdapter
OleDbDataReader
OleDbErrorCollection
OleDbError
OleDbException
OleDbParameterCollection
OleDbParameter
意 义
表示一个可用于数据源的SQL查询命令
表示对数据源的一个开放连接
表示一些数据命令和用来填充DataSet、更新数据源的数
据库连接
能够从一个数据源中读取一个前向型的数据记录流
OleDbErrorCollection拥有一些从数据源返回的警告和错
误集合,每个OleDbException都表示为OleDbError类型。
如果遇到错误,就会抛出OleDbException类型的异常
与典型ADO非常类似,OleDbParameterCollection 集合保
存了要传递给数据库中存储过程的参数。每个参数的类型
都是OleDbParameter
A.14.1 使用OleDbConnection类型建立连接
使用OleDb托管提供者的第一步就是使用OleDbConnection类型建立一个与数据源的会话。
类似于典型ADO Connection对象,OleDbConnection类型也提供了一个格式化的连接字符
串,包含了一些名/值对。您可以用这个信息来表示标识要连接的机器名称、所需的安全设
置、机器上数据库的名称,以及最重要的OLE DB提供者的名称(可以从在线帮助中找到每
个名/值对的完整说明)。
可以使用OleDbConnection来设置连接字符串。ConnectionString属性可以作为构造函数的
参数。假设您想用SQL OLE DB提供者连接到一个叫做BIGMANU的机器上的Cars数据库。
可以用下面的逻辑来完成这一步:
// Build a connection string.
OleDbConnection cn = new OleDbConnection();
tionString = "Provider=SQLOLEDB.1;" + // Which provider?
"Integrated Security=SSPI;" +
"Persist Security Info=False;" + // Persist security?
"Initial Catalog=Cars;" + // Name of database.
"Data Source=BIGMANU;"; // Name of machine.
从前面代码的注释可以知道,Initial Catalog名称指的就是您要建立与之会话的数据库(Pubs,
Northwind,Cars等)。Data Source名称表示维护这个数据库的机器名称。最后一个就是
Provider部分,它指定了用来访问数据存储的OLE DB提供者的名称。表A-13列出了一些
可能值。
表A-13 核心的OLE DB提供者
提供者部分值 意 义
.4.0
MSDAORA
SQLOLEDB
可以用Jet OLE DB提供者连接Access数据库
可以用OLE DB提供者连接Oracle
可以用OLE DB提供者连接MS SQL Server
当配置好连接字符串后,接下来就是打开与数据源的会话,执行一些操作,然后释放与这个
数据源的连接,如下所示:
// Build a connection string (can specify User ID and Password if needed).
OleDbConnection cn = new OleDbConnection();
tionString = "Provider=SQLOLEDB.1;" + // Which provider?
"Integrated Security=SSPI;" +
"Persist Security Info=False;" + // Persist security?
"Initial Catalog=Cars;" + // Name of database.
"Data Source=BIGMANU;"; // Name of machine.
();
// Do some interesting work here.
();
除了ConnectionString、Open()和Close()成员之外,OleDbConnection类还提供了很多可以配
置与连接相关的设置的成员,比如超时设置和事务信息。表A-14显示了一部分内容。
表A-14 OleDbConnection类型的成员
OleDbConnection成员
BeginTransaction()
CommitTransaction()
RollbackTransaction()
Close()
ConnectionString
ConnectionTimeout
Database
DataSource
Open()
Provider
State
关闭与数据源的连接。这是首选的方法
获得或设置用于打开一个与数据存储的会话的字符串
获得或设置在终止和生成错误之前建立一个连接需要等待
的事件。默认值为15秒
获得或设置当前数据库或者是连接打开后所用到的数据库
名称
获得或设置要连接的数据库名称
用当前的属性设置打开数据库连接
获得或设置提供者的名称
获得当前连接的状态
意 义
用来以编程方式提交、取消或回滚当前事务
A.14.2 构建SQL命令
OleDbCommand类是SQL查询的OO表示形式,并且可以用CommandText属性操作查询。
命名空间中的很多类型都需要OleDbCommand作为一个方法参数来发送请求到
数据源。在保留了原先的SQL查询之外,OleDbCommand类型还定义了其他一些成员,您
可以使用它们来配置不同类型的查询(表A-15)。
表A-15 OleDbCommand的成员
OleDbCommand成员
Cancel()
意 义
取消命令的执行
发布评论