.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 命名空間。 |
注意事項 |
---|
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,並可在 Connection 的 Transaction 範圍內執行。所有 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 提供者 (提供資料來源)。
注意事項 |
---|
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 提供者 |
注意事項 |
---|
建議您最好不要將 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;
注意事項 |
---|
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;
注意事項 |
---|
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.dll 和 System.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 資料來源的中介層及單層應用程式採用。 |