OdbcConnection 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示資料來源的開啟連接。
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
- 繼承
- 繼承
- 實作
範例
下列範例會 OdbcCommand 建立 和 OdbcConnection。 會 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物件代表使用 #D5737C559270B480DA4F1C48BE99F1872 或 ODBC 數據來源名稱所建立之數據源的唯一連接, (DSN) 。 使用用戶端/伺服器資料庫系統時,它相當於與伺服器的網路連線。 根據原生 ODBC 驅動程式所支援的功能,可能無法使用物件的某些方法或屬性 OdbcConnection 。
物件 OdbcConnection 會使用原生資源,例如 ODBC 環境和連接句柄。 您應該一律在物件超出範圍之前OdbcConnection呼叫 Close 或 Dispose,或在 語句中Using
放置連接,以明確關閉任何開啟OdbcConnection的物件。 不要這麼做,會釋放這些原生資源來垃圾收集。 它可能不會立即釋出它們。 接著,這可能會導致基礎驅動程式用盡資源或達到上限。 這會導致間歇性失敗。 例如,您可能會在許多連線等待垃圾收集行程刪除時遇到 Maximum Connections
相關的錯誤。 明確關閉連線可讓您更有效率地使用原生資源、增強延展性和改善整體應用程式效能。
注意
若要部署高效能應用程式,您經常必須使用連線共用。 不過,當您使用 .NET Framework Data Provider for ODBC 時,您不需要啟用連線共用,因為提供者會自動管理此專案。
例如,如果類別的OdbcCommand其中Execute
一個方法造成嚴重 OdbcException (,SQL Server 嚴重性層級為 20 或更新) ,OdbcConnection則可能會關閉 。 但是,使用者可以再次開啟連線,然後繼續進行。
建立 物件實例 OdbcConnection 的應用程式,可以藉由設定宣告式或命令式安全性需求,要求所有直接和間接呼叫者擁有足夠的程式碼許可權。 OdbcConnection 使用 OdbcPermission 物件建立安全性需求。 用戶可以使用 對象來確認其程式代碼具有足夠的許可權 OdbcPermissionAttribute 。 用戶和系統管理員也可以使用代碼啟用安全策略工具 (Caspol.exe) 修改計算機、使用者和企業層級的安全策略。 如需詳細資訊,請參閱 Code Access Security and ADO.NET。
如需處理數據源中警告和參考訊息的詳細資訊,請參閱 連線事件。
建構函式
OdbcConnection() |
初始化 OdbcConnection 類別的新執行個體。 |
OdbcConnection(String) |
使用指定的連接字串,初始化 OdbcConnection 類別的新執行個體。 |
屬性
CanCreateBatch |
取得值,指出這個 DbConnection 執行個體是否支援 DbBatch 類別。 (繼承來源 DbConnection) |
CanRaiseEvents |
取得值,指出元件是否能引發事件。 (繼承來源 Component) |
ConnectionString |
取得或設定用來開啟資料來源的字串。 |
ConnectionTimeout |
取得或設定在終止嘗試並產生錯誤前嘗試建立連接的等待時間 (以秒為單位)。 |
Container |
取得包含 IContainer 的 Component。 (繼承來源 Component) |
Database |
取得目前資料庫或要在連接開啟之後使用的資料庫名稱。 |
DataSource |
取得資料來源的伺服器名稱或檔案名稱。 |
DbProviderFactory |
取得此 DbProviderFactory 的 DbConnection。 (繼承來源 DbConnection) |
DesignMode |
取得值,指出 Component 目前是否處於設計模式。 (繼承來源 Component) |
Driver |
取得為目前連接指定的 ODBC 驅動程式名稱。 |
Events |
取得附加在這個 Component 上的事件處理常式清單。 (繼承來源 Component) |
ServerVersion |
取得字串,其包含用戶端連接之伺服器的版本。 |
Site | (繼承來源 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() |
建立並傳回與 OdbcCommand 相關聯的 OdbcConnection 物件。 |
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) |
將指定的異動登記為分散式異動。 |
EnlistTransaction(Transaction) |
登記指定的交易。 (繼承來源 DbConnection) |
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetLifetimeService() |
已淘汰.
擷取控制這個執行個體存留期 (Lifetime) 原則的目前存留期服務物件。 (繼承來源 MarshalByRefObject) |
GetSchema() |
傳回這個 OdbcConnection 之資料來源的結構描述資訊。 |
GetSchema(String) |
使用結構描述名稱的特定名稱,傳回這個 OdbcConnection 之資料來源的結構描述資訊。 |
GetSchema(String, String[]) |
使用結構描述名稱的特定字串和限制值的特定字串陣列,傳回這個 OdbcConnection 的資料來源的結構描述資訊。 |
GetSchemaAsync(CancellationToken) |
這是 GetSchema() 的非同步版本。
提供者應該覆寫為適當的實作。
您可以選擇性地接受 |
GetSchemaAsync(String, CancellationToken) |
這是 GetSchema(String) 的非同步版本。
提供者應該覆寫為適當的實作。
您可以選擇性地接受 |
GetSchemaAsync(String, String[], CancellationToken) |
這是 GetSchema(String, String[]) 的非同步版本。
提供者應該覆寫為適當的實作。
您可以選擇性地接受 |
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 擲回的例外狀況會透過傳回的工作例外狀況屬性來傳送。 在傳回的工作完成之前,不叫用 |
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) |
設定如何執行從非同步可處置項目傳回的工作 await。 |
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應