共用方式為


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
繼承
繼承
實作

範例

下列範例會建立 OdbcCommandOdbcConnectionOdbcConnection 會開啟並設定為 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 錯誤。 明確關閉連線可讓您更有效率地使用原生資源、增強延展性和改善整體應用程式效能。

注意

若要部署高效能應用程式,您經常必須使用連線共用。 不過,當您使用 .NET Framework Data Provider for ODBC 時,您不需要啟用連線共用,因為提供者會自動管理此專案。

如果 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)

建立物件,其中包含產生用來與遠端物件通訊之 Proxy 所需的所有相關信息。

(繼承來源 MarshalByRefObject)
Dispose()

執行與釋放、釋放或重設非受控資源相關聯的應用程式定義工作。

(繼承來源 DbConnection)
Dispose()

釋放 Component所使用的所有資源。

(繼承來源 Component)
Dispose(Boolean)

釋放 DbConnection 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

(繼承來源 DbConnection)
Dispose(Boolean)

釋放 Component 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

(繼承來源 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() 呼叫,並傳回已完成的工作。 如果傳遞已取消的工作,則預設實作會傳回已取消的工作,cancellationTokenGetSchema() 擲回的例外狀況將會透過傳回的工作例外狀況屬性進行通訊。

(繼承來源 DbConnection)
GetSchemaAsync(String, CancellationToken)

這是 GetSchema(String)的異步版本。 提供者應該以適當的實作覆寫。 可以選擇性地接受 cancellationToken。 默認實作會叫用同步 GetSchema(String) 呼叫,並傳回已完成的工作。 如果傳遞已取消的工作,則預設實作會傳回已取消的工作,cancellationTokenGetSchema(String) 擲回的例外狀況將會透過傳回的工作例外狀況屬性進行通訊。

(繼承來源 DbConnection)
GetSchemaAsync(String, String[], CancellationToken)

這是 GetSchema(String, String[])的異步版本。 提供者應該以適當的實作覆寫。 可以選擇性地接受 cancellationToken。 默認實作會叫用同步 GetSchema(String, String[]) 呼叫,並傳回已完成的工作。 如果傳遞已取消的工作,則預設實作會傳回已取消的工作,cancellationTokenGetSchema(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()

傳回包含 Component名稱的 String,如果有的話。 不應該覆寫這個方法。

(繼承來源 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)

設定如何執行從異步可處置專案傳回的工作等候。

適用於

另請參閱