數(shù)據(jù)提供程序用于連接到數(shù)據(jù)庫,執(zhí)行命令并檢索數(shù)據(jù)記錄。它是一個性能更好的輕量級組件。 它還允許將數(shù)據(jù)放入DataSet中以在應用程序中進一步使用。
.NET Framework提供了可以在應用程序中使用的下列數(shù)據(jù)提供者。
| 編號 | .NET Framework數(shù)據(jù)提供者 | 描述 |
|---|---|---|
| 1 | 用于SQL Server的.NET Framework數(shù)據(jù)提供程序 |
它為Microsoft SQL Server提供數(shù)據(jù)訪問。它需要System.Data.SqlClient命名空間。 |
| 2 | 用于OLE DB的.NET Framework數(shù)據(jù)提供程序 | 它用于連接OLE DB。它需要System.Data.OleDb命名空間。 |
| 3 | 用于Oracle的.NET Framework數(shù)據(jù)提供程序 | 它用于Oracle數(shù)據(jù)源。它使用System.Data.OracleClient命名空間。 |
| 4 | EntityClient提供程序 |
它為實體數(shù)據(jù)模型應用程序提供數(shù)據(jù)訪問。它需要System.Data.EntityClient命名空間。 |
| 5 | 用于SQL Server Compact 4.0的.NET Framework數(shù)據(jù)提供程序。 | 它為Microsoft SQL Server Compact 4.0提供數(shù)據(jù)訪問。它需要System.Data.SqlServerCe命名空間。 |
以下是數(shù)據(jù)提供者的核心對象。
| 編號 | 對象 | 描述 |
|---|---|---|
| 1 | Connection |
它用于建立到特定數(shù)據(jù)源的連接。 |
| 2 | Command |
它用于執(zhí)行查詢來執(zhí)行數(shù)據(jù)庫操作。 |
| 3 | DataReader |
它用于從數(shù)據(jù)源讀取數(shù)據(jù)。DbDataReader是所有DataReader對象的基類。 |
| 4 | DataAdapter |
它填充一個DataSet,并解析數(shù)據(jù)源的更新。所有DataAdapter對象的基類都是DbDataAdapter類。 |
SQL Server的數(shù)據(jù)提供者是一個輕量級組件。它提供了更好的性能,因為它直接訪問SQL Server而沒有任何中間連接層。在早期版本中,它在連接到創(chuàng)建性能問題的SQL Server之前與ODBC層進行交互。
SQL Server類的.NET Framework數(shù)據(jù)提供程序位于System.Data.SqlClient命名空間中。我們可以使用下面的語法在C#應用程序中包含這個名稱空間。
using System.Data.SqlClient;
這個命名空間包含以下重要的類。
| 編號 | 類 | 描述 |
|---|---|---|
| 1 | SqlConnection |
它用于創(chuàng)建與SQL Server的連接。這個類不能被繼承。 |
| 2 | SqlCommand |
它用于執(zhí)行數(shù)據(jù)庫查詢。這個類不能被繼承。 |
| 3 | SqlDataAdapter |
它表示一組用于填充DataSet的數(shù)據(jù)命令和數(shù)據(jù)庫連接。這個類不能被繼承。 |
| 4 | SqlDataReader |
它用于從SQL Server數(shù)據(jù)庫中讀取行。這個類不能被繼承。 |
| 5 | SqlException |
這個類用來拋出SQL異常,發(fā)生錯誤時會引發(fā)異常。這個類不能被繼承。 |
它用于通過Oracle客戶端連接Oracle數(shù)據(jù)庫。數(shù)據(jù)提供程序支持Oracle客戶端軟件版本8.1.7或更高版本。該數(shù)據(jù)提供程序支持本地和分布式事務。
Oracle數(shù)據(jù)提供程序類位于System.Data.OracleClient命名空間中。我們必須使用System.Data.OracleClient和System.data在應用程序中與Oracle數(shù)據(jù)庫連接。參考以下示例代碼 -
using System.Data;
using System.Data.OracleClient;
數(shù)據(jù)提供程序的選擇取決于應用程序的設計和數(shù)據(jù)源。選擇最佳的.NET Framework數(shù)據(jù)提供程序可以提高應用程序的性能,功能和完整性。下表顯示了數(shù)據(jù)提供程序的優(yōu)缺點。
| 編號 | 數(shù)據(jù)提供程序 | 注意事項 |
|---|---|---|
| 1 | 用于SQL Server的.NET Framework數(shù)據(jù)提供程序 | 這對于使用Microsoft SQL Server的中間層應用程序,單層應用程序來說是不錯的選擇。 |
| 2 | 用于OLE DB的.NET Framework數(shù)據(jù)提供程序 | 對于使用Microsoft Access數(shù)據(jù)庫的單層應用程序來說是很好的選擇。 |
| 3 | 用于ODBC的.NET Framework數(shù)據(jù)提供程序 | 對于使用ODBC數(shù)據(jù)源的中間層和單層應用程序來說,這是不錯的選擇。 |
| 4 | 用于Oracle的.NET Framework數(shù)據(jù)提供程序 | 對于使用Oracle數(shù)據(jù)源的中間層和單層應用程序來說,這是有好處的。 |