Tổng quan về ADO.NET


     ADO.NET là một thư viện trong .Net framework của Microsoft viết sẵn để hỗ trợ người dùng xử lý trên các hệ quản trị cơ sở dữ liệu quan hệ như Microsoft SQL Server, Oracle, My SQL, Microsoft Accesss…..

ADO.NET là một thư viện trong .Net framework của Microsoft viết sẵn để hỗ trợ người dùng xử lý trên các hệ quản trị cơ sở dữ liệu quan hệ như Microsoft SQL Server, Oracle, My SQL, Microsoft Accesss…..

       ADO.NET gồm 2 thành phần chính ADO.NET :

  • Các .NET Framework data providers cung cấp đối tượng hỗ trợ cho việc mở kết nối tới các cơ sở dữ liệu, các đối tượng hỗ trợ thực thi các câu lệnh cơ bản thực thi trên dữ liệu của SQL như  select, insert, update và delete.
  • DataSet và các lớp liên quan tới nó như DataRow, DataTable, DataView  dùng cho việc lưu trữ dữ liệu của cơ sở dữ liệu sau khi thực thi các câu lệnh của .NET Framework data providers và các dữ liệu này của DataSet  thông thường được lưu trữ trên RAM của bộ nhớ.

      Các thành phần và các lớp của ADO.NET chủ yếu được viết trong không gian tên (namespace) System.Data của .Net framework, trong đó DataSet nằm trong System.Data, và .NET Framework data providers các thường nằm trong các không gian tên (namespace) con của System.Data theo loại hệ quản trị dữ liệu mà chúng ta phát triển.

1.  .NET Framework data providers 

     Khi phát triển ứng dụng sử dụng ADO.NET để kết nối tới cơ sở dữ liệu, các bạn có thể sử dụng .NET Framework data providers được viết sẵn trong .Net framework do Microsoft phát triển hoặc sử dụng các data providers do cộng động hay do chính các đơn vị phát triển hệ quản trị  cơ sở dữ liệu viết ra.

     Trong .Net framework, Microsoft đã cung cấp sẵn cho các bạn các .NET Framework data providers như sau :

Data provider Namsepace Mô tả
.NET Framework Data Provider dành cho Microsoft SQL Server System.Data.SqlClient Cung cấp các kết nối và thao tác tới các phiên bản Microsoft SQL Server từ 7.0 trở lên
.NET Framework Data Provider dành cho các OLE DB System.Data.OleDb Cung cấp các kết nối và tao tác tới các hệ quản trị dữ liệu dựa trên OLE DB.
.NET Framework Data Provider dành cho ODBC System.Data.Odbc Cung cấp các kết nối và tao tác tới các hệ quản trị dữ liệu dựa trên ODBC.
.NET Framework Data Provider dành cho Oracle System.Data.OracleClient Cung cấp các kết nối và thao tác tới các phiên bản Oracle client software từ 8.1.7 trở lên.
EntityClient Provider System.Data.EntityClient Cung cấp các kết nối và thao tác dành cho các ứng dụng Entity Data Model (EDM)

       Chú ý: Đối với các hệ quản trị cơ sở dữ liệu quan hệ khác như Oracle, My SQL, PostgreSQL, …các bạn có thể sử dụng các Data Provider do chính đơn vị cung cấp hệ quản trị dữ liệuhoặc công đồng phát triển để có được sử tối ưu  và phù hợp hơn so với các bản chuẩn mà Microsoft  cung cấp. Ví dụ như Data Provider dành cho Oracle là System.Data.OracleClient cũng được chính bản thân Microsoft khuyến cáo không nên sử dụng cho các ứng dụng thực tế, các bạn nên sử dụng Oracle Data Provider for .NET do chính Oracle phát triển.

     Trong mỗi NET Framework data providers đều có nhiều lớp với các thao tác nghiệp vụ xử lý khác nhau, nhưng cơ bản chúng cần phải cung cấp lớp cơ bản như sau:

Lớp Miêu tả
Connection Cung cấp các đối tượng dùng để thiết lập một kết nối tới cơ sở dữ liệu dựa trên một địa chỉ cơ sở dữ liệu cụ thể. Lớp Connection kế thừa từ lớp trìu tượng DbConnection. Đầu vào của mỗi Connection là một chuỗi kết nối, chứa thông tin tới địa chỉ của cơ sở dữ liệu nằm trong không gian tên System.Data.Common.
Command Cung cấp đối tượng hỗ trợ thực thi các câu lệnh liên quan tới việc xử lý và trích xuất dữ liệu từ một cơ sở dữ liệu. Lớp Command tồn tại trong một phiên kết nối tới đối tượng Connection. Lớp Command kế thừa từ lớp trìu tượng DbCommand nằm trong không gian tên System.Data.Common. Đầu vào của lớp Command là một kết nối tới cơ sở dữ liệu (Connection) và các tham số (Parameter)
DataReader Cung cấp đối tượng tạo ra một luồng hỗ trợ chỉ đọc forward-only, read-only dữ liệu từ một cơ sở dữ liệu dưới dạng thực thi câu lệnh Select của SQL. Lớp DataReader kế thừa từ lớp trừu tượng DbDataReader nằm trong không gian tên System.Data.Common. Đầu vào là một đối tượng Command.
DataAdapter Cung cấp đối tượng hỗ trợ nhận các dữ liệu trả về của các câu lệnh Insert, Update, Delete của SQL, và nhận dữ liệu trả về dưới dạng DataSet đối với các câu lệnh Select của SQL. Lớp DataAdapter kế thừa từ lớp trìu tượng DbDataAdapter nằm trong không gian tên System.Data.Common. Đầu vào là một đối tượng Command.

       Các ví dụ sử dụng .NET Framework data providers

+ Sử dụng System.Data.SqlClient trong ADO.NET  để kết nối tới cơ sở dữ liệu Microsoft SQL Server

+ Sử dụng System.Data.OracleClient trong ADO.NET  để kết nối tới cơ sở dữ liệu Oracle

+ Sử dụng Oracle Data Provider for .NET của Oracle  để kết nối tới cơ sở dữ liệu Oracle

2.  DataSet

    DataSet là một mô hình tổ chức dữ liệu có cấu trúc tương đối giống mô hình của cơ sở dữ liệu quan hệ, dùng để lưu trữ dữ liệu trên bộ nhớ máy tính độc lập với tất cả các nguồn dữ liệu. DataSet gồm 1 tập của các DataTable, mà mỗi DataTable có mô hình như một bảng dữ liệu trong hệ cơ sở dữ liệu quan hệ, điều này giúp cho DataSet có thể lưu trữ được nhiều nguồn dữ liệu khác nhau như dữ liệu quan hệ, XML

The DataSet in ADO.NET architect      Dưới đây là các lớp cơ bản trong ADO.NET mà chúng ta thường sử dụng trong không gian tên System.Data.

STT Tên lớp Mô tả
1 DataSet Cung cấp một đối tượng lưu trữ dữ liệu trong bộ nhớ. DataSet là một tập hợp nhiều DataTable và DataRelation
2 DataTable Cung cấp một đối tượng bảng trong bộ nhớ (table of in-memory). Một bảng gồm nhiều DataRow và DataColumn
3 DataRelation Cung cấp một đối tượng miêu tả mối quan hệ cha con (parent/child relationship) giữa 2 DataTable
4 DataViews Cung cấp một đối tượng miêu tả các khung nhìn khác nhau của dữ liệu DataTable đã lưu trong bộ nhớ. Có thể hiểu DataTable giống như câu lệnh select lấy tất cả cột và dòng dữ liệu của bảng. Còn DataViews là hình thức select có lựa chọn cột cần lấy và mệnh để where để tùy chỉnh số lượng dòng cần hiển thị, và tùy vào yêu cầu nghiệp vụ của ứng dụng mà số lượng cột và số dòng lấy ra phù hợp với giao diện của ứng dụng
5 DataColumn Cung cấp đối tượng minh họa một giản đồ một cột của đối tượng DataTable. Dùng DataColumn để định nghĩa kiến trúc của DataTable
6 DataColumnCollection Cung cấp đối tượng minh họa một tập các cột DataColumn trong đối tượng DataTable
7 DataRow Cung cấp đối tượng minh họa một dòng dữ liệu của đối tượng DataTable. Dùng DataRow để lưu trữ các dòng dữ liệu thực tế của DataTable
8 DataRowCollection Cung cấp đối tượng minh họa một tập các cột DataRow trong đối tượng DataTable
9 DataTableReader Cung cấp một đối tượng hỗ trợ việc đọc một hoặc nhiều DataTable theo nguyên tắc chỉ đọc, chỉ chuyển tiếp (read-only, forward-only)

Các ví dụ sử dụng DataSet và các thành phần trong ADO.NET

+ Tạo một DataTable trong bộ nhớ bằng code (Programmatically)

+ Tạo một DataTable trong bộ nhớ bằng cách sử dụng System.Data.SqlClient trong Microsoft SQL

+ Tạo một DataSet trong bộ nhớ bằng code (Programmatically)

+ Tạo một DataSet trong bộ nhớ bằng cách sử dụng System.Data.SqlClient trong Microsoft SQL


Related Post

Phản hồi

Phản hồi