OdbcConnection 类

表示到数据源的连接是打开的。

**命名空间:**System.Data.Odbc
**程序集:**System.Data(在 system.data.dll 中)

语法

声明
Public NotInheritable Class OdbcConnection
    Inherits DbConnection
    Implements ICloneable
用法
Dim instance As OdbcConnection
public sealed class OdbcConnection : DbConnection, ICloneable
public ref class OdbcConnection sealed : public DbConnection, ICloneable
public final class OdbcConnection extends DbConnection implements ICloneable
public final class OdbcConnection extends DbConnection implements ICloneable

备注

OdbcConnection 对象表示到数据源的唯一连接,该数据源是通过使用连接字符串或 ODBC 数据源名称 (DSN) 创建的。在客户端/服务器数据库系统中,它等效于一个到服务器的网络连接。OdbcConnection 对象的某些方法或属性可能不能使用,具体情况视本机 ODBC 驱动程序支持的功能而定。

OdbcConnection 对象使用本机资源,如 ODBC 环境和连接句柄。应始终通过在 OdbcConnection 对象超出范围前调用 CloseDispose,或者通过将连接放入 Using 语句中,显式关闭任何打开的 OdbcConnection 对象。不这样做会将释放这些本机资源的操作留给垃圾回收。它可能不会立即释放它们。而这样最终又可能会造成基础驱动程序资源枯竭或达到最大限制。从而导致失败时有发生。例如,当有许多连接等待被垃圾回收器删除时,可能会发生与 Maximum Connections 相关的错误。显式关闭连接可以更高效地使用本机资源,增强可伸缩性并提高应用程序的总体性能。

提示

若要部署高性能应用程序,则必须频繁使用连接池。但是,当使用用于 ODBC 的 .NET Framework 数据提供程序时,不必启用连接池,因为提供程序会自动对此进行管理。

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

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

有关处理来自数据源的警告和信息性消息的更多信息,请参见 使用连接事件

示例

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

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
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.
    }
}

继承层次结构

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Data.Common.DbConnection
        System.Data.Odbc.OdbcConnection

线程安全

此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

平台

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1

请参见

参考

OdbcConnection 成员
System.Data.Odbc 命名空间

其他资源

连接到数据源