OleDbConnection 類別

定義

表示資料來源的開啟連接。

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

範例

下列範例會 OleDbCommand 建立 和 OleDbConnectionOleDbConnection會開啟 ,並將 設定為 ConnectionOleDbCommand 。 接著,此範例會呼叫 ExecuteNonQuery 並關閉連線。 若要達成此目的, ExecuteNonQuery 會傳遞連接字串和 SQL INSERT 語句的查詢字串。

public void InsertRow(string connectionString, string insertSQL)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        // The insertSQL string contains a SQL statement that
        // inserts a new row in the source table.
        OleDbCommand command = new OleDbCommand(insertSQL);

        // Set the Connection to the new OleDbConnection.
        command.Connection = connection;

        // Open the connection and execute the insert command.
        try
        {
            connection.Open();
            command.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        // The connection is automatically closed when the
        // code exits the using block.
    }
}
Public Sub InsertRow(ByVal connectionString As String, _
    ByVal insertSQL As String)

    Using connection As New OleDbConnection(connectionString)
        ' The insertSQL string contains a SQL statement that
        ' inserts a new row in the source table.
        Dim command As New OleDbCommand(insertSQL)

        ' Set the Connection to the new OleDbConnection.
        command.Connection = connection

        ' Open the connection and execute the insert command.
        Try
            connection.Open()
            command.ExecuteNonQuery()
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
        ' The connection is automatically closed when the
        ' code exits the Using block.
    End Using
End Sub

備註

OleDbConnection物件代表資料來源的唯一連接。 使用用戶端/伺服器資料庫系統時,相當於與伺服器的網路連線。 根據原生 OLE DB 提供者所支援的功能,某些物件的方法或屬性 OleDbConnection 可能無法使用。

當您建立 的 OleDbConnection 實例時,所有屬性都會設定為其初始值。 如需這些值的清單,請參閱建 OleDbConnection 構函式。

您可以在單 OleDbConnection 一 上開啟多個 DataReader。 如果您使用的 OLE DB 提供者不支援單一連線上的一個以上的 DataReader,則提供者會隱含地為每個連接開啟額外的連接。

OleDbConnection如果 超出範圍,則不會關閉。 因此,您必須呼叫 CloseDispose或使用 OleDbConnection 語句內的 Using 物件,明確地關閉連接。

注意

若要部署高效能應用程式,您必須使用連線共用。 當您使用 .NET Framework Data Provider for OLE DB 時,您不需要啟用連線共用,因為提供者會自動管理此專案。 如需如何使用連線共用搭配 .NET Framework Data Provider for OLE DB 的詳細資訊,請參閱OLE DB、ODBC 和 Oracle 連線共用

例如,如果嚴重 OleDbException (,SQL Server嚴重性層級為 20 或更新) 是由執行 OleDbCommand 的 方法所產生, OleDbConnection 可能會關閉 。 但是,使用者可以再次開啟連線,然後繼續進行。

建立 物件實例的應用程式 OleDbConnection ,可以藉由設定宣告式或命令式安全性需求,要求所有直接和間接呼叫端擁有足夠的程式碼許可權。 OleDbConnection 使用 OleDbPermission 物件來提出安全性需求。 使用者可以使用 物件來確認其程式碼具有足夠的許可權 OleDbPermissionAttribute 。 使用者和系統管理員也可以使用 Caspol.exe (代碼存取安全性原則工具) 修改電腦、使用者和企業層級的安全性原則。 如需詳細資訊,請參閱 Code Access Security and ADO.NET

如需從資料伺服器處理警告和參考訊息的詳細資訊,請參閱 連接事件

注意

物件 OleDbConnection 不支援設定或擷取 OLE DB 提供者特定的動態屬性。 僅支援 OLE DB 提供者之連接字串中可傳遞的屬性。

建構函式

OleDbConnection()

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

OleDbConnection(String)

使用指定的連接字串,初始化 OleDbConnection 類別的新執行個體。

屬性

CanCreateBatch

取得值,指出這個 DbConnection 執行個體是否支援 DbBatch 類別。

(繼承來源 DbConnection)
CanRaiseEvents

取得值,指出元件是否能引發事件。

(繼承來源 Component)
ConnectionString

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

ConnectionTimeout

取得在終止嘗試並產生錯誤前嘗試建立連接的等待時間 (以秒為單位)。

Container

取得包含 IContainerComponent

(繼承來源 Component)
Database

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

DataSource

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

DbProviderFactory

取得此 DbProviderFactoryDbConnection

(繼承來源 DbConnection)
DesignMode

取得值,指出 Component 目前是否處於設計模式。

(繼承來源 Component)
Events

取得附加在這個 Component 上的事件處理常式清單。

(繼承來源 Component)
Provider

取得在連接字串的 "Provider= " 子句中指定的 OLE DB 提供者名稱。

ServerVersion

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

Site

取得或設定 ComponentISite

(繼承來源 Component)
State

取得連線目前的狀態。

方法

BeginDbTransaction(IsolationLevel)

當在衍生類別中被覆寫時,會開始進行資料庫交易。

(繼承來源 DbConnection)
BeginDbTransactionAsync(IsolationLevel, CancellationToken)

以非同步方式開始資料庫交易。

(繼承來源 DbConnection)
BeginTransaction()

使用目前的 IsolationLevel 值來開始資料庫的交易。

BeginTransaction(IsolationLevel)

使用指定的隔離等級開始資料庫異動。

BeginTransactionAsync(CancellationToken)

以非同步方式開始資料庫交易。

(繼承來源 DbConnection)
BeginTransactionAsync(IsolationLevel, CancellationToken)

以非同步方式開始資料庫交易。

(繼承來源 DbConnection)
ChangeDatabase(String)

為開啟的 OleDbConnection 變更目前的資料庫。

ChangeDatabaseAsync(String, CancellationToken)

以非同步方式針對開啟的連線變更目前的資料庫。

(繼承來源 DbConnection)
Close()

關閉資料來源的連接。

CloseAsync()

以非同步方式關閉與資料庫的連線。

(繼承來源 DbConnection)
CreateBatch()

傳回提供者類別的新執行個體,該執行個體會實作 DbBatch 類別。

(繼承來源 DbConnection)
CreateCommand()

建立並傳回與 OleDbCommand 相關聯的 OleDbConnection 物件。

CreateDbBatch()

在衍生類別中覆寫時,傳回實 DbBatch 作 類別之提供者類別的新實例。

(繼承來源 DbConnection)
CreateDbCommand()

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

(繼承來源 DbConnection)
CreateObjRef(Type)

建立包含所有相關資訊的物件,這些資訊是產生用來與遠端物件通訊的所需 Proxy。

(繼承來源 MarshalByRefObject)
Dispose()

執行與釋放 (Free)、釋放 (Release) 或重設 Unmanaged 資源相關聯之應用程式定義的工作。

(繼承來源 DbConnection)
Dispose()

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

(繼承來源 Component)
Dispose(Boolean)

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

(繼承來源 DbConnection)
Dispose(Boolean)

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

(繼承來源 Component)
DisposeAsync()

以非同步方式處置連線物件。

(繼承來源 DbConnection)
EnlistDistributedTransaction(ITransaction)

將指定的異動登記為分散式異動。

EnlistTransaction(Transaction)

將指定的異動登記為分散式異動。

Equals(Object)

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

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetLifetimeService()
已淘汰.

擷取控制這個執行個體存留期 (Lifetime) 原則的目前存留期服務物件。

(繼承來源 MarshalByRefObject)
GetOleDbSchemaTable(Guid, Object[])

在套用指定的限制之後,從資料來源傳回 GUID 所指示的結構描述 (Schema) 資訊。

GetSchema()

傳回這個 OleDbConnection 之資料來源的結構描述資訊。

GetSchema(String)

使用結構描述名稱的特定字串,傳回這個 OleDbConnection 之資料來源的結構描述資訊。

GetSchema(String, String[])

使用結構描述名稱的特定字串和限制值的特定字串陣列,傳回這個 OleDbConnection 的資料來源的結構描述資訊。

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 所指定的設定開啟資料庫連接。 這個方法會叫用虛擬方法 OpenAsync(CancellationToken) 與 CancellationToken.None。

(繼承來源 DbConnection)
OpenAsync(CancellationToken)

這是 Open() 的非同步版本。 提供者應該覆寫為適當的實作。 可以選擇性地接受取消語彙基元。

預設實作會叫用同步Open()呼叫並傳回完成的工作。 如果傳遞一個已經被取消的 cancellationToken,預設實作會傳回已取消的工作。 Open 擲回的例外狀況會透過傳回的工作例外狀況屬性來傳送。

在傳回的工作完成之前,不叫用 DbConnection 物件的其他方法及屬性。

(繼承來源 DbConnection)
ReleaseObjectPool()

指出 OleDbConnection 物件集區 (Object Pool) 可在釋放最後一個基礎連接時釋放。

ResetState()

更新 State 物件的 OleDbConnection 屬性。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
ToString()

傳回任何包含 Component 名稱的 String。 不應覆寫此方法。

(繼承來源 Component)

事件

Disposed

Dispose() 方法的呼叫處置元件時,就會發生。

(繼承來源 Component)
InfoMessage

當提供者傳送警告或資訊訊息時發生。

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)

適用於

另請參閱