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 物件代表使用連接字串或 ODBC 資料來源名稱 (DSN) 所建立之數據來源的唯一連接。 使用用戶端/伺服器資料庫系統時,它相當於伺服器的網路連線。 根據原生 ODBC 驅動程式所支援的功能,可能無法使用 OdbcConnection 物件的某些方法或屬性。
OdbcConnection 物件會使用原生資源,例如 ODBC 環境和連接句柄。 您應該一律在 OdbcConnection 物件超出範圍之前呼叫 Close 或 Dispose,或將連接放在 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 |
取得包含 Component的 IContainer。 (繼承來源 Component) |
Database |
取得開啟連接之後要使用的目前資料庫或資料庫的名稱。 |
DataSource |
取得資料源的伺服器名稱或檔名。 |
DbProviderFactory |
取得這個 DbConnection的 DbProviderFactory。 (繼承來源 DbConnection) |
DesignMode |
取得值,這個值表示 Component 目前是否處於設計模式。 (繼承來源 Component) |
Driver |
取得為目前連接指定的 ODBC 驅動程式名稱。 |
Events |
取得附加至這個 Component之事件處理程序的清單。 (繼承來源 Component) |
ServerVersion |
取得字串,其中包含用戶端所連接的伺服器版本。 |
Site | (繼承來源 Component) |
State |
取得連接的目前狀態。 |
方法
事件
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) |
設定如何執行從異步可處置專案傳回的工作等候。 |