ADO.NET - ADO.NET Data Providers

ADO.NET Framework Data Providers

Chúng ta biết rằng ADO.NET cho phép tương tác với các loại dữ liệu và kiểu database. Mỗi loại dữ liệu cần một cách thức khác nhau để có thể truy xuất. Các loại dữ liệu cũ sử dụng giao thức ODBC, các loại dữ liệu mới hơn sử dụng giao thức OleDb. Vì vậy cần có một thư viện thống nhất để làm việc với chúng, đây chính là lý do mà ADO.NET được tạo ra.

ADO.NET cung cấp một cách thức chung để tương tác với nguồn dữ liệu, nhưng với mỗi loại dữ liệu bạn phải sử dụng một thư viện khác nhau. Các thư viện này được gọi là Data Provider và thường được đặt tên theo giao thức hoặc loại dữ liệu mà chúng cho phép bạn truy xuất. Bảng sau  liệt kê các data provider phổ biến.

.NET Framework data provider Mô tả
.NET Framework Data Provider for SQL Server Được sử dụng để kết nối CSDL  Microsoft SQL Server. Yêu cầu namespace System.Data.SqlClient .
.NET Framework Data Provider for OLE DB Được sử dụng để kết nối OLE DB. Yêu cầu namespace System.Data.OleDb namespace.
.NET Framework Data Provider for ODBC Được sử dụng để kết nối nguồn dữ liệu sử dụng ODBC. Yêu cầu namespace System.Data.Odbc.
.NET Framework Data Provider for Oracle Được sử dụng Oracle data sources. Yêu cầu namespace System.Data.OracleClient namespace.
EntityClient Provider Được sử dụng để truy cập các ứng dụng dạng Entity Data Model . Yêu cầu namespace System.Data.EntityClient.
.NET Framework Data Provider for SQL Server Compact 4.0. Được sử dụng để truy cập Microsoft SQL Server Compact 4.0. Yêu cầu namespace System.Data.SqlServerCe.

Các đối tượng trong .NET Framework Data Providers  

Đối tượng Mô tả
Connection Thường được sử dụng để kết nối với một CSDL cụ thể..
Command Thương được sử dụng để thực thi các câu truy vấn trong CSDL.
DataReader Thương được sử dụng để đọc dữ liệu trong CSDL.
DataAdapter It populates a DataSet and resolves updates with the data source. The base class for all DataAdapter objects is the DbDataAdapter class.

 NET Framework Data Provider for SQL Server

Data provider xử lý dữ liệu tốt hơn. Vì, nó kết nối trực tiếp đến SQL Server không cần lớp trung gian. Trong phiên bản trước, nó có thể kết nối với SQL Server thông qua ODBC.

Các lớp kết nối với CSDL SQL Server classes chứa trong namespace System.Data.SqlClient. Namespace này chứa trong ứng dụng chúng ta theo cú pháp:

using System.Data.SqlClient; 

Namespace chứa các lớp quan trọng.

Lớp Mô tả
SqlConnection Được sử dụng để kết nối CSDL SQL Server. Lớp này không thể kế thừa.
SqlCommand Được sử dụng để thực thi các câu truy vấn trong CSDL. Lớp này không thể kế thừa.
SqlDataAdapter Lớp này là lớp trung gian để đọc dữ liệu cho DataSet. Lớp này không thể kế thừa.
SqlDataReader

Đối tượng data reader cho phép bạn lấy được kết quả của một câu lệnh SELECT từ một đối tượng command.
Để tăng hiệu suất, dữ liệu trả về từ một data reader là một luồng dữ liệu fast forward-only. Lớp này không thể thừa kế

SqlException Lớp này được sử dụng để bắt lỗi. Lớp này không thể kế thừa.

.NET Framework Data Provider for Oracle

Thường được sử dụng kết nối với CSDL Oracle. Data Provider hỗ trợ phiên bản từ 8.1.7 trở lên. 
Các lớp Oracle Data Provider chứa trong namespace System.Data.OracleClient. Chúng ta phải sử dụng cả hai  System.Data.OracleClient và System.data  trong ứng để kết nối CSDL Oracle.

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

.NET Framework Data Provider nào là tốt hơn

Sự lựa chọn Data Provider nào còn phụ thuộc vào nguồn dữ liệu trong ứng dụng. Việc chọng .NET Framework Data Provider có thể cải tiến khả năng chứa, thực thi, tích hợp trong ứng dụng. Bảng sau mô tả tiện lợi và không tiện lợi của Data Provider

Data Provider Note
.NET Framework Data Provider for SQL Server Hiệu quả trong các ứng dụng middle-tier , single-tier applications sử dụng CSDL Microsoft SQL Server.
.NET Framework Data Provider for OLE DB Hiệu quả trong các ứng dụng single-tier applications sử dụng Microsoft Access databases.
.NET Framework Data Provider for ODBC Hiệu quả trong các ứng dụng middle và single-tier sử dụng ODBC data sources.
.NET Framework Data Provider for Oracle Hiệu quả trong các ứng dụng middle và single-tier sử dụng Oracle data sources.