OdbcConnection 类

定义

表示与数据源的打开连接。

public ref class OdbcConnection sealed : System::Data::Common::DbConnection, ICloneable
public ref class OdbcConnection sealed : System::ComponentModel::Component, ICloneable, IDisposable, System::Data::IDbConnection
public sealed class OdbcConnection : System.Data.Common.DbConnection, ICloneable
public sealed class OdbcConnection : System.ComponentModel.Component, ICloneable, IDisposable, System.Data.IDbConnection
type OdbcConnection = class
    inherit DbConnection
    interface ICloneable
type OdbcConnection = class
    inherit Component
    interface ICloneable
    interface IDbConnection
    interface IDisposable
Public NotInheritable Class OdbcConnection
Inherits DbConnection
Implements ICloneable
Public NotInheritable Class OdbcConnection
Inherits Component
Implements ICloneable, IDbConnection, IDisposable
继承
继承
实现

示例

以下示例创建一个 OdbcCommand 和一个 OdbcConnection。 将打开 OdbcConnection 并将其设置为 Connection 属性。 然后,该示例将调用 ExecuteNonQuery并关闭连接。 为此,ExecuteNonQuery 传递连接字符串和查询字符串,该字符串是 SQL INSERT 语句。

static private void InsertRow(string connectionString)
{
    string queryString =
        "INSERT INTO Customers (CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')";
    OdbcCommand command = new OdbcCommand(queryString);

    using (OdbcConnection connection = new OdbcConnection(connectionString))
    {
        command.Connection = connection;
        connection.Open();
        command.ExecuteNonQuery();

        // The connection is automatically closed at
        // the end of the Using block.
    }
}
Private Sub InsertRow(ByVal connectionString As String)

    Dim queryString As String = _
        "INSERT INTO Customers (CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')"
    Dim command As New OdbcCommand(queryString)

    Using connection As New OdbcConnection(connectionString)
        command.Connection = connection
        connection.Open()
        command.ExecuteNonQuery()

        ' The connection is automatically closed at 
        ' the end of the Using block.
    End Using
End Sub

注解

OdbcConnection 对象表示与使用连接字符串或 ODBC 数据源名称(DSN)创建的数据源的唯一连接。 使用客户端/服务器数据库系统时,它等效于与服务器的网络连接。 根据本机 ODBC 驱动程序支持的功能,OdbcConnection 对象的某些方法或属性可能不可用。

OdbcConnection 对象使用本机资源,例如 ODBC 环境和连接句柄。 在 OdbcConnection 对象超出范围之前,应始终通过调用 CloseDispose,或通过将连接置于 Using 语句中来显式关闭任何打开的 OdbcConnection 对象。 如果不这样做,就可释放这些本机资源来垃圾回收。 它可能不会立即释放他们。 反过来,这最终可能导致基础驱动程序耗尽资源或达到最大限制。 这导致了间歇性故障。 例如,在许多连接等待垃圾回收器删除时,可能会遇到 Maximum Connections -related 错误。 显式关闭连接可以更有效地使用本机资源、增强可伸缩性和提高整体应用程序性能。

注意

若要部署高性能应用程序,经常必须使用连接池。 但是,使用用于 ODBC 的 .NET Framework 数据提供程序时,不必启用连接池,因为提供程序会自动管理它。

如果 OdbcCommand 类的 Execute 方法之一导致致命 OdbcException(例如,SQL Server 严重级别为 20 或更高),则 OdbcConnection 可能会关闭。 但是,用户可以重新打开连接并继续。

创建 OdbcConnection 对象的实例的应用程序可以通过设置声明性或命令性安全要求来要求所有直接和间接调用方具有对代码的足够权限。 OdbcConnection 使用 OdbcPermission 对象创建安全要求。 用户可以使用 OdbcPermissionAttribute 对象来验证其代码是否具有足够的权限。 用户和管理员还可以使用代码访问安全策略工具(Caspol.exe)修改计算机、用户和企业级别的安全策略。 有关详细信息,请参阅 代码访问安全和 ADO.NET

有关处理数据源中警告和信息性消息的详细信息,请参阅 连接事件

构造函数

OdbcConnection()

初始化 OdbcConnection 类的新实例。

OdbcConnection(String)

使用指定的连接字符串初始化 OdbcConnection 类的新实例。

属性

CanCreateBatch

获取一个值,该值指示此 DbConnection 实例是否支持 DbBatch 类。

(继承自 DbConnection)
CanRaiseEvents

获取一个值,该值指示组件是否可以引发事件。

(继承自 Component)
ConnectionString

获取或设置用于打开数据源的字符串。

ConnectionTimeout

获取或设置在终止尝试并生成错误之前尝试建立连接的时间(以秒为单位)。

Container

获取包含 ComponentIContainer

(继承自 Component)
Database

获取打开连接后要使用的当前数据库或数据库的名称。

DataSource

获取数据源的服务器名称或文件名。

DbProviderFactory

获取此 DbConnectionDbProviderFactory

(继承自 DbConnection)
DesignMode

获取一个值,该值指示 Component 当前是否处于设计模式。

(继承自 Component)
Driver

获取为当前连接指定的 ODBC 驱动程序的名称。

Events

获取附加到此 Component的事件处理程序的列表。

(继承自 Component)
ServerVersion

获取一个字符串,其中包含客户端连接到的服务器的版本。

Site

获取或设置 ComponentISite

(继承自 Component)
State

获取连接的当前状态。

方法

BeginDbTransaction(IsolationLevel)

在派生类中重写时,启动数据库事务。

(继承自 DbConnection)
BeginDbTransactionAsync(IsolationLevel, CancellationToken)

异步启动数据库事务。

(继承自 DbConnection)
BeginTransaction()

在数据源处启动事务。

BeginTransaction(IsolationLevel)

使用指定的 IsolationLevel 值在数据源处启动事务。

BeginTransactionAsync(CancellationToken)

异步开始数据库事务。

(继承自 DbConnection)
BeginTransactionAsync(IsolationLevel, CancellationToken)

异步开始数据库事务。

(继承自 DbConnection)
ChangeDatabase(String)

更改与打开 OdbcConnection关联的当前数据库。

ChangeDatabaseAsync(String, CancellationToken)

异步更改打开连接的当前数据库。

(继承自 DbConnection)
Close()

关闭与数据源的连接。

CloseAsync()

异步关闭与数据库的连接。

(继承自 DbConnection)
CreateBatch()

返回实现 DbBatch 类的提供程序类的新实例。

(继承自 DbConnection)
CreateCommand()

创建并返回与 OdbcConnection关联的 OdbcCommand 对象。

CreateDbBatch()

在派生类中重写时,返回实现 DbBatch 类的提供程序类的新实例。

(继承自 DbConnection)
CreateDbCommand()

在派生类中重写时,创建并返回与当前连接关联的 DbCommand 对象。

(继承自 DbConnection)
CreateObjRef(Type)

创建一个对象,其中包含生成用于与远程对象通信的代理所需的所有相关信息。

(继承自 MarshalByRefObject)
Dispose()

执行与释放、释放或重置非托管资源关联的应用程序定义任务。

(继承自 DbConnection)
Dispose()

释放 Component使用的所有资源。

(继承自 Component)
Dispose(Boolean)

释放 DbConnection 使用的非托管资源,并选择性地释放托管资源。

(继承自 DbConnection)
Dispose(Boolean)

释放 Component 使用的非托管资源,并选择性地释放托管资源。

(继承自 Component)
DisposeAsync()

异步地将连接对象浸入。

(继承自 DbConnection)
EnlistDistributedTransaction(ITransaction)

将指定事务中的登记为分布式事务。

EnlistTransaction(Transaction)

将指定事务中的登记为分布式事务。

EnlistTransaction(Transaction)

在指定的事务中登记。

(继承自 DbConnection)
Equals(Object)

确定指定的对象是否等于当前对象。

(继承自 Object)
GetHashCode()

用作默认哈希函数。

(继承自 Object)
GetLifetimeService()
已过时.

检索控制此实例的生存期策略的当前生存期服务对象。

(继承自 MarshalByRefObject)
GetSchema()

返回此 OdbcConnection数据源的架构信息。

GetSchema(String)

使用架构名称的指定名称返回此 OdbcConnection 数据源的架构信息。

GetSchema(String, String[])

返回此 OdbcConnection 数据源的架构信息,该数据源使用架构名称的指定字符串和限制值的指定字符串数组。

GetSchemaAsync(CancellationToken)

这是 GetSchema()的异步版本。 提供程序应使用适当的实现替代。 可以选择遵守 cancellationToken。 默认实现调用同步 GetSchema() 调用并返回已完成的任务。 如果已通过已取消 cancellationToken,则默认实现将返回已取消的任务。 GetSchema() 引发的异常将通过返回的任务异常属性进行通信。

(继承自 DbConnection)
GetSchemaAsync(String, CancellationToken)

这是 GetSchema(String)的异步版本。 提供程序应使用适当的实现替代。 可以选择遵守 cancellationToken。 默认实现调用同步 GetSchema(String) 调用并返回已完成的任务。 如果已通过已取消 cancellationToken,则默认实现将返回已取消的任务。 GetSchema(String) 引发的异常将通过返回的任务异常属性进行通信。

(继承自 DbConnection)
GetSchemaAsync(String, String[], CancellationToken)

这是 GetSchema(String, String[])的异步版本。 提供程序应使用适当的实现替代。 可以选择遵守 cancellationToken。 默认实现调用同步 GetSchema(String, String[]) 调用并返回已完成的任务。 如果已通过已取消 cancellationToken,则默认实现将返回已取消的任务。 GetSchema(String, String[]) 引发的异常将通过返回的任务异常属性进行通信。

(继承自 DbConnection)
GetService(Type)

返回一个对象,该对象代表由 Component 或其 Container提供的服务。

(继承自 Component)
GetType()

获取当前实例的 Type

(继承自 Object)
InitializeLifetimeService()
已过时.

获取生存期服务对象来控制此实例的生存期策略。

(继承自 MarshalByRefObject)
MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
MemberwiseClone(Boolean)

创建当前 MarshalByRefObject 对象的浅表副本。

(继承自 MarshalByRefObject)
OnStateChange(StateChangeEventArgs)

引发 StateChange 事件。

(继承自 DbConnection)
Open()

使用 ConnectionString指定的属性设置打开与数据源的连接。

OpenAsync()

Open()的异步版本,该版本使用 ConnectionString指定的设置打开数据库连接。 此方法使用 CancellationToken.None 调用虚拟方法 OpenAsync(CancellationToken)

(继承自 DbConnection)
OpenAsync(CancellationToken)

这是 Open()的异步版本。 提供程序应使用适当的实现替代。 可以选择遵循取消令牌。

默认实现调用同步 Open() 调用并返回已完成的任务。 如果传递已取消的 cancellationToken,则默认实现将返回已取消的任务。 Open 引发的异常将通过返回的任务异常属性进行通信。

在返回的任务完成之前,请勿调用 DbConnection 对象的其他方法和属性。

(继承自 DbConnection)
ReleaseObjectPool()

指示在释放最后一个基础连接时,可以释放 ODBC 驱动程序管理器环境句柄。

ToString()

返回一个 String,其中包含 Component的名称(如果有)。 不应重写此方法。

(继承自 Component)

事件

Disposed

当组件通过调用 Dispose() 方法释放时发生。

(继承自 Component)
InfoMessage

当 ODBC 驱动程序发送警告或信息性消息时发生。

StateChange

在连接状态发生更改时发生。

StateChange

在连接状态发生更改时发生。

(继承自 DbConnection)

显式接口实现

ICloneable.Clone()

有关此成员的说明,请参阅 Clone()

IDbConnection.BeginTransaction()

此 API 支持产品基础结构,不能在代码中直接使用。

开始数据库事务。

IDbConnection.BeginTransaction()

开始数据库事务。

(继承自 DbConnection)
IDbConnection.BeginTransaction(IsolationLevel)

此 API 支持产品基础结构,不能在代码中直接使用。

使用指定的隔离级别开始数据库事务。

IDbConnection.BeginTransaction(IsolationLevel)

使用指定的隔离级别开始数据库事务。

(继承自 DbConnection)
IDbConnection.CreateCommand()

此 API 支持产品基础结构,不能在代码中直接使用。

创建并返回与连接关联的命令对象。

IDbConnection.CreateCommand()

创建并返回与当前连接关联的 DbCommand 对象。

(继承自 DbConnection)

扩展方法

ConfigureAwait(IAsyncDisposable, Boolean)

配置如何执行从异步可释放项返回的任务的 await。

适用于

另请参阅