OdbcConnection 類別

定義

表示數據源的開啟連接。

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

範例

以下範例可產生一個 OdbcCommandOdbcConnection。 打開 並 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 明確關閉任何未開啟OdbcConnection物件,或將連線置於陳述式中Using。 這樣做不會讓這些原生資源釋出垃圾收集。 它可能不會立即釋放它們。 反過來,這最終可能會導致基礎驅動程式耗盡資源或達到上限。 這會導致間歇性失敗。 例如,當許多連線等待被垃圾回收器刪除時,你可能會遇到 Maximum Connections -related 錯誤。 明確關閉連線可讓您更有效率地使用原生資源、增強延展性和改善整體應用程式效能。

Note

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

如果類別中的Execute某個OdbcCommand方法導致致命(OdbcException例如SQL Server嚴重度等級達20或以上),可能會OdbcConnection關閉。 不過,使用者可以重新開啟連線並繼續使用。

建立物件實例 OdbcConnection 的應用程式可以透過設定宣告式或命令式安全要求,要求所有直接與間接呼叫者對程式碼擁有足夠的權限。 OdbcConnection 使用物件 OdbcPermission 會產生安全需求。 使用者可以透過使用物件 OdbcPermissionAttribute 來驗證其程式碼是否擁有足夠的權限。 使用者與管理員也可使用程式碼存取安全政策工具(Caspol.exe)在電腦、使用者及企業層級修改安全政策。 如需詳細資訊,請參閱 Code Access Security and ADO.NET

欲了解更多關於處理來自資料來源的警告與資訊訊息的資訊,請參閱 連線事件

建構函式

名稱 Description
OdbcConnection()

初始化 OdbcConnection 類別的新執行個體。

OdbcConnection(String)

初始化一個新的類別實例 OdbcConnection ,使用指定的連接字串。

屬性

名稱 Description
CanRaiseEvents

會得到一個值,表示該元件是否能引發事件。

(繼承來源 Component)
ConnectionString

取得或設定用來開啟資料來源的字串。

ConnectionTimeout

取得或設定嘗試在終止嘗試併產生錯誤之前,嘗試建立連線的時間(以秒為單位)。

Container

得到 IContainer 包含 Component的 。

(繼承來源 Component)
Database

取得目前資料庫名稱或開啟連線後要使用的資料庫名稱。

DataSource

取得資料源的伺服器名稱或檔名。

DbProviderFactory

為此DbProviderFactory付出DbConnection代價。

(繼承來源 DbConnection)
DesignMode

會得到一個值,表示目前 Component 是否處於設計模式。

(繼承來源 Component)
Driver

取得為目前連接指定的 ODBC 驅動程式名稱。

Events

會取得與此 Component連結的事件處理程序清單。

(繼承來源 Component)
ServerVersion

取得字串,其中包含用戶端所連接的伺服器版本。

Site

取得或設定 ISiteComponent

(繼承來源 Component)
State

取得連線的當前狀態。

方法

名稱 Description
BeginDbTransaction(IsolationLevel)

當在派生類別中被覆寫時,會啟動資料庫交易。

(繼承來源 DbConnection)
BeginTransaction()

在數據源啟動交易。

BeginTransaction(IsolationLevel)

在指定值的資料來源 IsolationLevel 開始交易。

ChangeDatabase(String)

變更與開啟 OdbcConnection. 相關聯的當前資料庫。

Close()

關閉與數據源的連接。

CreateCommand()

建立並回傳 OdbcCommandOdbcConnection相關聯的物件。

CreateDbCommand()

當在衍生類別中覆寫時,會建立並回傳 DbCommand 與目前連線相關的物件。

(繼承來源 DbConnection)
CreateObjRef(Type)

建立一個物件,包含產生代理伺服器所需的所有相關資訊,用於與遠端物件通訊。

(繼承來源 MarshalByRefObject)
Dispose()

釋放所有由 Component.

(繼承來源 Component)
Dispose(Boolean)

釋放 未管理的資源, Component 並可選擇性地釋放受管理資源。

(繼承來源 Component)
EnlistDistributedTransaction(ITransaction)

以分散式交易形式登錄指定的交易。

EnlistTransaction(Transaction)

以分散式交易形式登錄指定的交易。

Equals(Object)

判斷指定的 物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetLifetimeService()

取得目前控制此實例生命週期政策的終身服務物件。

(繼承來源 MarshalByRefObject)
GetSchema()

回傳此 OdbcConnection資料來源的結構資訊。

GetSchema(String, String[])

回傳此 OdbcConnection 資料來源的結構資訊,並使用指定的字串作為結構名稱,並以指定的字串陣列作為限制值。

GetSchema(String)

會回傳該 OdbcConnection 資料來源的結構資訊,並使用指定的結構名稱。

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() 呼叫同步呼叫並回傳已完成的任務。 預設實作若傳遞已取消的取消令牌,會回傳已取消的任務。 由 Open 拋出的異常會透過回傳的任務異常屬性來傳達。

在回傳任務完成前,不要呼叫物件的其他 DbConnection 方法和屬性。

(繼承來源 DbConnection)
ReleaseObjectPool()

表示在釋放最後一個基礎連接時,可以釋放 ODBC 驅動程式管理員環境句柄。

ToString()

回傳 String 包含 的名稱 Component(若有的話)。 此方法不應被覆蓋。

(繼承來源 Component)

事件

名稱 Description
Disposed

當元件被呼叫方法 Dispose() 時會發生。

(繼承來源 Component)
InfoMessage

發生於 ODBC 驅動程式傳送警告或參考訊息時。

StateChange

當連線狀態改變時會發生。

StateChange

當連線狀態改變時會發生。

(繼承來源 DbConnection)

明確介面實作

名稱 Description
ICloneable.Clone()

關於此成員的描述,請參見 Clone()

IDbConnection.BeginTransaction()

此 API 支援此產品基礎結構,但無法直接用於程式碼之中。

開始資料庫交易。

IDbConnection.BeginTransaction()

開始資料庫交易。

(繼承來源 DbConnection)
IDbConnection.BeginTransaction(IsolationLevel)

此 API 支援此產品基礎結構,但無法直接用於程式碼之中。

以指定的隔離等級開始資料庫交易。

IDbConnection.BeginTransaction(IsolationLevel)

以指定的隔離等級開始資料庫交易。

(繼承來源 DbConnection)
IDbConnection.CreateCommand()

此 API 支援此產品基礎結構,但無法直接用於程式碼之中。

建立並傳回與連接相關聯的命令物件。

IDbConnection.CreateCommand()

建立並回傳 DbCommand 與目前連線相關聯的物件。

(繼承來源 DbConnection)

適用於

另請參閱