共用方式為


OleDbConnection 類別

定義

表示數據源的開啟連接。

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 ref class OleDbConnection sealed : 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
public sealed class OleDbConnection : System.Data.Common.DbConnection, ICloneable
type OleDbConnection = class
    inherit DbConnection
    interface IDbConnection
    interface IDisposable
    interface ICloneable
type OleDbConnection = class
    inherit Component
    interface ICloneable
    interface IDbConnection
    interface IDisposable
type OleDbConnection = class
    inherit DbConnection
    interface ICloneable
    interface IDbConnection
    interface IDisposable
Public NotInheritable Class OleDbConnection
Inherits DbConnection
Implements ICloneable, IDisposable
Public NotInheritable Class OleDbConnection
Inherits Component
Implements ICloneable, IDbConnection, IDisposable
Public NotInheritable Class OleDbConnection
Inherits DbConnection
Implements ICloneable
繼承
繼承
實作

範例

下列範例會建立 OleDbCommandOleDbConnection。 會開啟 OleDbConnection,並設定為 OleDbCommandConnection。 然後,此範例會呼叫 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,或使用 Using 語句內的 OleDbConnection 對象,明確關閉連接。

注意

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

如果執行 OleDbCommand的方法會產生嚴重 OleDbException(例如,SQL Server 嚴重性層級為 20 或更新版本),則 OleDbConnection 可能會關閉。 不過,用戶可以重新開啟連線並繼續。

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

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

注意

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

建構函式

OleDbConnection()

初始化 OleDbConnection 類別的新實例。

OleDbConnection(String)

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

屬性

CanCreateBatch

取得值,這個值表示這個 DbConnection 實例是否支援 DbBatch 類別。

(繼承來源 DbConnection)
CanRaiseEvents

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

(繼承來源 Component)
ConnectionString

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

ConnectionTimeout

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

Container

取得包含 ComponentIContainer

(繼承來源 Component)
Database

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

DataSource

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

DbProviderFactory

取得這個 DbConnectionDbProviderFactory

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

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

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)

將指定交易中的登記為分散式交易。

Equals(Object)

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

(繼承來源 Object)
GetHashCode()

做為預設哈希函式。

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

擷取控制這個實例存留期原則的目前存留期服務物件。

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

從數據源傳回架構資訊,如 GUID 所指示,並在套用指定的限制之後傳回。

GetSchema()

傳回這個 OleDbConnection之數據源的架構資訊。

GetSchema(String)

使用架構名稱的指定字串,傳回這個 OleDbConnection 數據源的架構資訊。

GetSchema(String, String[])

使用架構名稱的指定字串,以及限制值的指定字串,傳回這個 OleDbConnection 數據源的架構資訊。

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()

表示釋放最後一個基礎連線時,可以釋放 OleDbConnection 物件集區。

ResetState()

更新 OleDbConnection 物件的 State 屬性。

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)

擴充方法

ConfigureAwait(IAsyncDisposable, Boolean)

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

適用於

另請參閱