ADO.Net資料提供程式


資料提供程式用於連線到資料庫,執行命令並檢索資料記錄。它是一個效能更好的輕量級元件。 它還允許將資料放入DataSet中以在應用程式中進一步使用。

.NET Framework提供了可以在應用程式中使用的下列資料提供者。

編號 .NET Framework資料提供者 描述
1 用於SQL Server的.NET Framework資料提供程式 它為Microsoft SQL Server提供資料存取。它需要System.Data.SqlClient名稱空間。
2 用於OLE DB的.NET Framework資料提供程式 它用於連線OLE DB。它需要System.Data.OleDb名稱空間。
3 用於Oracle的.NET Framework資料提供程式 它用於Oracle資料源。它使用System.Data.OracleClient名稱空間。
4 EntityClient提供程式 它為實體資料模型應用程式提供資料存取。它需要System.Data.EntityClient名稱空間。
5 用於SQL Server Compact 4.0的.NET Framework資料提供程式。 它為Microsoft SQL Server Compact 4.0提供資料存取。它需要System.Data.SqlServerCe名稱空間。

.NET Framework資料提供程式物件

以下是資料提供者的核心物件。

編號 物件 描述
1 Connection 它用於建立到特定資料源的連線。
2 Command 它用於執行查詢來執行資料庫操作。
3 DataReader 它用於從資料源讀取資料。DbDataReader是所有DataReader物件的基礎類別。
4 DataAdapter 它填充一個DataSet,並解析資料源的更新。所有DataAdapter物件的基礎類別都是DbDataAdapter類。

用於SQL Server的.NET Framework資料提供程式

SQL Server的資料提供者是一個輕量級元件。它提供了更好的效能,因為它直接存取SQL Server而沒有任何中間連線層。在早期版本中,它在連線到建立效能問題的SQL Server之前與ODBC層進行互動。

SQL Server類的.NET Framework資料提供程式位於System.Data.SqlClient名稱空間中。我們可以使用下面的語法在C#應用程式中包含這個名稱空間。

using System.Data.SqlClient;

這個名稱空間包含以下重要的類。

編號 描述
1 SqlConnection 它用於建立與SQL Server的連線。這個類不能被繼承。
2 SqlCommand 它用於執行資料庫查詢。這個類不能被繼承。
3 SqlDataAdapter 它表示一組用於填充DataSet的資料命令和資料庫連線。這個類不能被繼承。
4 SqlDataReader 它用於從SQL Server資料庫中讀取行。這個類不能被繼承。
5 SqlException 這個類用來丟擲SQL異常,發生錯誤時會引發異常。這個類不能被繼承。

用於Oracle的.NET Framework資料提供程式

它用於通過Oracle用戶端連線Oracle資料庫。資料提供程式支援Oracle用戶端軟體版本8.1.7或更高版本。該資料提供程式支援本地和分散式事務。

Oracle資料提供程式類位於System.Data.OracleClient名稱空間中。我們必須使用System.Data.OracleClientSystem.data在應用程式中與Oracle資料庫連線。參考以下範例程式碼 -

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

哪個.NET Framework資料提供程式更好?

資料提供程式的選擇取決於應用程式的設計和資料源。選擇最佳的.NET Framework資料提供程式可以提高應用程式的效能,功能和完整性。下表顯示了資料提供程式的優缺點。

編號 資料提供程式 注意事項
1 用於SQL Server的.NET Framework資料提供程式 這對於使用Microsoft SQL Server的中間層應用程式,單層應用程式來說是不錯的選擇。
2 用於OLE DB的.NET Framework資料提供程式 對於使用Microsoft Access資料庫的單層應用程式來說是很好的選擇。
3 用於ODBC的.NET Framework資料提供程式 對於使用ODBC資料源的中間層和單層應用程式來說,這是不錯的選擇。
4 用於Oracle的.NET Framework資料提供程式 對於使用Oracle資料源的中間層和單層應用程式來說,這是有好處的。