.NET Framework 資料提供者

.NET Framework 資料提供者的用途是連接資料庫、執行命令和擷取結果。那些結果不是直接放在 ADO.NET DataSet 中,以臨機操作的方式公開給使用者,並結合來自不同來源的資料加以處理,不然就是透過遠端在各層間進行處理。.NET Framework 資料提供者採輕量設計,在資料來源和您的程式碼間建立一個規模最小的層級,提升效能又不犧牲功能。

下表列出 .NET Framework 中包含的 .NET Framework 資料提供者。

.NET Framework 資料提供者 說明

SQL Server 的 .NET Framework 資料提供者

提供 Microsoft SQL Server 7.0 (含) 以後版本的資料存取。使用 System.Data.SqlClient 命名空間。

OLE DB 的 .NET Framework 資料提供者

使用 OLE DB 公開的資料來源。使用 System.Data.OleDb 命名空間。

ODBC 的 .Net Framework 資料提供者

使用 ODBC 公開的資料來源。使用 System.Data.Odbc 命名空間。

Oracle 的 .NET Framework 資料提供者

針對 Oracle 資料來源。Oracle 的 .NET Framework 資料提供者支援 Oracle 用戶端軟體 8.1.7 版及更新版本,並使用 System.Data.OracleClient 命名空間。

Note注意事項

ODBC 的 .NET Framework 資料提供者和 Oracle 的 .NET Framework 資料提供者一開始並未隨附在 .NET Framework 1.0 版之中。如果需要 ODBC 的 .NET Framework 資料提供者或 Oracle 的 .NET Framework 資料提供者,並使用 .NET Framework 1.0,則可從 Data Access and Storage Developer Center (英文) 下載這些資料提供者。已下載的 ODBC 的 .NET Framework 資料提供者命名空間為 Microsoft.Data.Odbc。所下載 Oracle 的 .NET Framework 資料提供者的命名空間為 System.Data.OracleClient

.NET Framework 資料提供者的核心物件

下表列出構成 .NET Framework 資料提供者的四個核心物件。

物件 說明

Connection

建立連至特定資料來源的連接。所有 Connection 物件的基本類別是 DbConnection 類別。

Command

對資料來源執行命令。公開 Parameters,並可在 ConnectionTransaction 範圍內執行。所有 Command 物件的基本類別是 DbCommand 類別。

DataReader

從資料來源讀取順向唯讀的資料流。所有 DataReader 物件的基本類別是 DbDataReader 類別。

DataAdapter

使用資料來源填入 DataSet 並解析更新資料。所有 DataAdapter 物件的基本類別是 DbDataAdapter 類別。

除了上表列出的核心類別外,.NET Framework 資料提供者也包含下表所列出的類別。

物件 說明

Transaction

可讓您將命令登記在資料來源的交易中。所有 Transaction 物件的基本類別是 DbTransaction 類別。

CommandBuilder

Helper 物件,會自動產生 DataAdapter 的命令屬性,或從預存程序衍生參數資訊並填入 Command 物件的 Parameters 集合。所有 CommandBuilder 物件的基本類別是 DbCommandBuilder 類別。

ConnectionStringBuilder

Helper 物件,可讓您簡單地建立和管理 Connection 物件所使用的連接字串內容。所有 ConnectionStringBuilder 物件的基本類別是 DbConnectionStringBuilder 類別。

Parameter

定義命令和預存程序的輸入、輸出和傳回值參數。所有 Parameter 物件的基本類別是 DbParameter 類別。

Exception

在資料來源發生錯誤時傳回。如果錯誤發生在用戶端,則 .NET Framework 資料提供者會擲回 .NET Framework 例外狀況。所有 Exception 物件的基本類別是 DbException 類別。

Error

公開資料來源傳回的警告或錯誤資訊。

ClientPermission

提供 .NET Framework 資料提供者所需的程式碼存取安全性屬性。所有 ClientPermission 物件的基本類別是 DBDataPermission 類別。

SQL Server 的 .NET Framework 資料提供者

SQL Server 的 .NET Framework 資料提供者會使用自己的通訊協定與 SQL Server 通訊。此為輕量型的提供者且其效能很好,因為已經過最佳化,所以可直接存取 SQL Server,而不需加上 OLE DB 或開放式資料庫連接 (ODBC) 層。下列圖例將 SQL Server 的 .NET Framework 資料提供者和 OLE DB 的 .NET Framework 資料提供者進行比較。OLE DB 的 .NET Framework 資料提供者透過下列元件與 OLE DB 資料來源通訊:一為 OLE DB Service 元件 (提供連接共用和交易服務),二為 OLE DB 提供者 (提供資料來源)。

Note注意事項

ODBC 的 .NET Framework 資料提供者的架構和 OLE DB 的 .NET Framework 資料提供者的架構類似,例如,前者會呼叫 ODBC Service 元件。

SQL Server 的 .NET Framework 資料提供者和 OLE DB 的 .NET Framework 資料提供者之比較

資料提供者

若要使用 SQL Server 的.NET Framework 資料提供者,您必須存取 SQL Server 7.0 (含) 以後版本。SQL Server .NET Framework 資料提供者類別位於 System.Data.SqlClient 命名空間。若您使用舊版的 SQL Server,請搭配使用 OLE DB 的 .NET Framework 資料提供者與 SQL Server OLE DB 提供者 (SQLOLEDB)。

SQL Server 的 .NET Framework 資料提供者支援本機和分散式交易。若使用的是分散式交易,則 SQL Server 的 .NET Framework 資料提供者預設會自動登記在交易中,並從 Windows 元件服務或 System.Transactions 取得交易詳細資料。如需詳細資訊,請參閱執行交易

下列程式碼範例顯示如何將 System.Data.SqlClient 命名空間納入您的應用程式。

Imports System.Data.SqlClient
using System.Data.SqlClient;

OLE DB 的 .NET Framework 資料提供者

OLE DB 的 .NET Framework 資料提供者使用原生 OLE DB 透過 COM Interop 來啟用資料存取。OLE DB 的 .NET Framework 資料提供者支援本機和分散式交易。若使用的是分散式交易,則 OLE DB 的 .NET Framework 資料提供者預設會自動登記在交易中,並從 Windows 2000 元件服務取得交易明細。如需詳細資訊,請參閱執行交易

下表顯示用 ADO.NET 測試過的提供者。

驅動程式 提供者

SQLOLEDB

SQL Server 的 Microsoft OLE DB 提供者

MSDAORA

Oracle 的 Microsoft OLE DB 提供者

Microsoft.Jet.OLEDB.4.0

Microsoft Jet 的 OLE DB 提供者

Note注意事項

建議您最好不要將 Access (Jet) 資料庫當做多執行緒應用程式 (例如 ASP.NET 應用程式) 的資料來源。如果您的 ASP.NET 應用程式必須使用 Access 做為資料來源,而且無法使用其他資料來源 (例如 SQL Server 或 MSDE),則 ASP.NET 應用程式連接 Access 資料庫時,可能會出現連接問題,通常與安全性使用權限有關。如需使用 ASP.NET 和 Access 資料庫時所發生連接問題的疑難排解說明,請參閱 Microsoft Knowledge Base 中的文件 Q316675<PRB:無法從 ASP.NET 連接到 Access 資料庫>(英文)。

OLE DB 的 .NET Framework 資料提供者不支援 OLE DB 2.5 版的介面。OLE DB 提供者若需要 OLE DB 2.5 介面的支援,將無法用 OLE DB 的 .NET Framework 資料提供者正常運作,這包括 Exchange 的 Microsoft OLE DB 提供者和 Internet Publishing 的 Microsoft OLE DB 提供者。

OLE DB 的 .NET Framework 資料提供者無法用於 ODBC 的 OLE DB 提供者 (MSDASQL)。若要使用 ADO.NET 存取 ODBC 資料來源,請使用 ODBC 的 .NET Framework 資料提供者。

OLE DB 的 .NET Framework 資料提供者類別位於 System.Data.OleDb 命名空間。下列程式碼範例顯示如何將 System.Data.OleDb 命名空間納入您的應用程式。

Imports System.Data.OleDb
using System.Data.OleDb;
Note注意事項

OLE DB 的 .NET Framework 資料提供者需要使用 MDAC 2.6 (含) 以後版本,並建議使用 MDAC 2.8 Service Pack 1 (SP1)。您可以從 Data Access and Storage Developer Center 下載 MDAC 2.8 SP1。

ODBC 的 .NET Framework 資料提供者

ODBC 的 .NET Framework 資料提供者使用原生 ODBC 驅動程式管理員 (DM) 來啟用資料存取。ODBC 資料提供者支援本機和分散式交易。若使用的是分散式交易,則 ODBC 資料提供者預設會自動登記在交易中,並從 Windows 2000 元件服務取得交易明細。如需詳細資訊,請參閱執行交易

下表顯示 ADO.NET 測試過的 ODBC 驅動程式。

驅動程式

SQL Server

Oracle 的 Microsoft ODBC

Microsoft Access Driver (*.mdb)

ODBC 的 .NET Framework 資料提供者類別位於 System.Data.Odbc 命名空間。

下列程式碼範例顯示如何將 System.Data.OleDb 命名空間納入您的應用程式。

Imports System.Data.Odbc
using System.Data.Odbc;
Note注意事項

ODBC 的 .NET Framework 資料提供者需要使用 MDAC 2.6 (含) 以後版本,並建議使用 MDAC 2.8 SP1。您可以從 Data Access and Storage Developer Center 下載 MDAC 2.8 SP1。

Oracle 的 .NET Framework 資料提供者

Oracle 的 .NET Framework 資料提供者透過 Oracle 用戶端連接軟體啟用對 Oracle 資料來源的資料存取。資料提供者支援 Oracle 用戶端軟體 8.1.7 (含) 以後版本。資料提供者支援本機和分散式交易。如需詳細資訊,請參閱執行交易

Oracle 的 .NET Framework 資料提供者要求先在系統上安裝 Oracle 用戶端軟體 (8.1.7 (含) 以後版本),以便連接到 Oracle 資料來源。

Oracle 的 .NET Framework 資料提供者類別位於 System.Data.OracleClient 命名空間內,且包含在 System.Data.OracleClient.dll 組件中。如果您要編譯的應用程式有使用資料提供者,則必須參考 System.Data.dllSystem.Data.OracleClient.dll

下列程式碼範例顯示如何將 System.Data.SqlClient 命名空間納入您的應用程式。

Imports System.Data
Imports System.Data.OracleClient
using System.Data;
using System.Data.OracleClient;

選擇 .NET Framework 資料提供者

請依照您應用程式的設計和資料來源選擇 .NET Framework 資料提供者,以提升應用程式的效能、功能和完整性。下表討論每個 .NET Framework 資料提供者的優點和限制。

提供者 附註

SQL Server 的 .NET Framework 資料提供者

建議使用 Microsoft SQL Server 7.0 (含) 以後版本的中介層應用程式採用。

建議使用 Microsoft Database Engine (MSDE) 或 SQL Server 7.0 (含) 以後版本的單層應用程式採用。

建議使用 SQL Server 的 OLE DB 提供者 (SQLOLEDB) 配合 OLE DB 的 .NET Framework 資料提供者時採用。

若使用的是 SQL Server 6.5 及更早版本,則您必須搭配使用 SQL Server 的 OLE DB 提供者和 OLE DB 的 .NET Framework 資料提供者。

OLE DB 的 .NET Framework 資料提供者

建議使用 SQL Server 6.5 或更早版本的中介層應用程式採用。

若使用的是 SQL Server 7.0 (含) 以後版本,建議使用 SQL Server 的 .NET Framework 資料提供者。

亦建議使用 Microsoft Access 資料庫的單層應用程式採用。不建議中介層應用程式採用 Access 資料庫。

ODBC 的 .Net Framework 資料提供者

建議使用 ODBC 資料來源的中介層及單層應用程式採用。

Oracle 的 .NET Framework 資料提供者

建議使用 Oracle 資料來源的中介層及單層應用程式採用。

請參閱

概念

ADO.NET 架構

其他資源

ADO.NET 概觀