29/09/2010
1
Lập Trình Ứng Dụng Quản 1
Chương 5:
ADO.NET
GV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
1. GIỚI THIỆU ADO.NET
2ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
2. KIẾN TRÚC ADO.NET
3ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
2. KIẾN TRÚC ADO.NET
4ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
2. KIẾN TRÚC ADO.NET
Kiến trúc của ADO.NET bao gồm 2 phần chính:
Managed Provider Component.
Content Component
5ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
2. KIẾN TRÚC ADO.NET
Kiến trúc của ADO.NET bao gồm 2 phần chính:
Managed Provider Component: gồm các lớp đối
tượng:
DataAdapter
DataReader
Managed Provider Component: giữ nhiệm vụ m việc
trực tiếp với dữ liệu như Sở Dữ Liệu, Tập Tin,…
Lớp đối tượng DataReader giúp truy cập dữ liệu
nhanh chóng.
Lớp DataAdapter hỗ trợ việc kết nối giữa DataSet
CSDL.
6ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
29/09/2010
2
Khoa CNTT-ĐH.KHTN
2. KIẾN TRÚC ADO.NET
Kiến trúc của ADO.NET bao gồm 2 phần chính:
Content Component: gồm các lớp đối tượng:
DataSet
DataTable
Content Component: đại diện cho dữ liệu thật sự
cần m việc.
Dataset được xem như bản sao gọn nh của
CSDL trong bộ nhớ với nhiều bảng các mối
quan hệ giữa các bảng.
7ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
2. KIẾN TRÚC ADO.NET
8ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
MỘT GÓC NHÌN
KHÁC VỀ KIẾN TRÚC
ADO.NET
Khoa CNTT-ĐH.KHTN
2. KIẾN TRÚC ADO.NET
9ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
2. KIẾN TRÚC ADO.NET
Kiến trúc của ADO.NET bao gồm 2 phần chính:
Managed Provider Component: Phần kết nối: phần
này sử dụng khi ta kết nối với Database thao tác
dữ liệu, u cầu phải thực hiện kết nối với Database
khi đang thao tác. c đối tượng của phần này là:
Command: Đối ợng thực hiện các câu lệnh tương
tác truy vấn, rút trích dữ liệu từ database khi đã thiết
lập kết nối tới dữ liệu trả về kết quả. Tương tự như
Connection, Command cũng 2 dạng tuỳ theo
nguồn dữ liệu (OleDb hay SQL Server) đó
OleDbCommand SqlCommand.
10 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
2. KIẾN TRÚC ADO.NET
Kiến trúc của ADO.NET bao gồm 2 phần chính:
DataReader: Đối tượng x lý đọc dữ liệu, được
thiết kế p hợp cho các ng dng web. Chỉ Xử
1 dòng dữ liệu tại một thời điểm. P hợp với ng
dụng web x lý nhanh, nhẹ không chiếm b
nhớ. Cũng có 2 dạng tùy theo dữ liệu nguồn:
OleDbDataReader SqlDataReader. Dữ liệu của
đối tượng được tạo ra khi đối tượng Command
thực hin câu lệnh ExecuteReader().
11 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
2. KIẾN TRÚC ADO.NET
Kiến trúc của ADO.NET bao gồm 2 phần chính:
DataAdapter: Đây là đi tượng rất quan trọng ca
ADO.NET, cầu nối của database dataset
(dataset đối tượng ngt kết nối), bởi vì đối
tượng “ngắt kết nối” dataset không thể liên lc
trực tiếp với database nên nó cần một đối tượng
trung gian lấy dữ liệu từ database cho nó. Và đó
chính là DataAdapter. DataAdpater khi thao tác
vi Database vẫn phải duy trì kết nối nên nó được
liệt vào dạng “kết nối”, nhưng bản chất phục
v cho việc “ngắt kết nối”.
12 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
29/09/2010
3
Khoa CNTT-ĐH.KHTN
2. KIẾN TRÚC ADO.NET
Kiến trúc của ADO.NET bao gồm 2 phần chính:
Content Component: Phần “ngắt kết nối”: chỉ có
một đối tượng chịu trách nhiệm ngắt kết nối đó
chính DataSet.
DataSet không cần biết gì về Database thuộc kiểu
gì, kết nối ra sao. Nhiệm vụ của DataSet là nhận
dữ liu v từ DataAdapter x .
DataSet có thể được xem như 1 Database trong
bộ nhớ gồm tất c các bảng ,quan hệ …..
13 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
2. KIẾN TRÚC ADO.NET
DataSet nhiều đối tượng được xem “con” tức cấp thấp
hơn đi kèm với như: DataTable (tương đương với 1 bảng
trong database), cấp thấp hơn của DataTable các đối tượng
DataRow (tương đương với 1 dòng), DataColumn (tương đương
với 1 cột), DataRelation (tương đương với các quan hệ). Ngoài
ra còn các đối tượng nhóm: DataTableCollection,
DataRowCollection, DataColumnCollection.
Việc sử dụng DataSet một tiến b lớn của kiến trúc ADO.NET
tuy nhiên với các ứng dụng Web, việc sử dụng DataSet không
được khuyến khích đối tượng DataSet được xem quá lớn,
nặng nề khó thích hợp cho đường truyền trên web vốn rất hạn
chế.
14 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
2. KIẾN TRÚC ADO.NET
15 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
2. KIẾN TRÚC ADO.NET
16 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
2. KIẾN TRÚC ADO.NET
17 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
2. KIẾN TRÚC ADO.NET
18 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
29/09/2010
4
Khoa CNTT-ĐH.KHTN
2. KIẾN TRÚC ADO.NET
19 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
2. KIẾN TRÚC ADO.NET
20 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
3. CÁC ĐẶC ĐIỂM CỦA ADO.NET
ADO.NET một phần của .NET Framework.
ADO.NET được xem “bộ thư vin lớp” chịu
trách nhiệm xử lý dữ liệu trong ngôn ngữ
MS.NET.
ADO.NET được thiết kế với dạng dữ liệu “ngắt
kết nối”, nghĩa ta th lấy cả một cấu trúc
phức tạp của dữ liệu từ database, sau đó ngắt
kết nối với database rồi mới thực hin các thao
tác cần thiết. Đây là một sự tiến bộ về mặt thiết
kế bởi vì thiết kế ADO trước đây luôn cần duy trì
một kết nối trong quá trình thao tác dữ liệu.
21 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
3. CÁC ĐẶC ĐIỂM CỦA ADO.NET
ADO.NET được thiết kế hoàn toàn dựa vào XML
XML chuẩn trao đổi dữ liu tiến bộ và tốt
nhất trên môi trường Internet hiện nay.
ADO.NET được thiết kế hoàn toàn hướng đối
tượng: đây đặc điểm chi phối toàn bộ các sản
phẩm Microsoft .NET.
22 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
3. CÁC ĐẶC ĐIỂM CỦA ADO.NET
23 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Đặc điểm ADO ADO.NET
Dữ liệu xử được đưa
vào bộ nhớ dưới dạng
Recordset: tương đương 1 bảng dữ
liệu trong database
Dataset: tương đương 1
database
Duyệt dữ liệu Recordset chỉ cho phép duyệt tuần tự,
từng dòng một.
Dataset: cho phép duyệt tự do,
ngẫu nhiên”, truy cập thẳng tới
bảng ,dòng ,cột mong muốn.
Dữ liệu ngắt kết nối Recordset cũng thể ngắt kết nối
nhưng tưởng thiết kế ban đầu của
Recordset hướng kết nối, do đó việc
ngắt kết nối cũng không được hỗ trợ tốt
nhất.
Dataset được thiết kế với
tưởng ban đầu “ngắt kết nối
à hỗ trợ mạnh m “ngắt kết nối”.
Khoa CNTT-ĐH.KHTN
3. CÁC ĐẶC ĐIỂM CỦA ADO.NET
24 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Đặc điểm ADO ADO.NET
Khả năng vượt tường
lửa
Khi trao đổi dữ liệu với ADO qua
Internet, thường sử dụng chuẩn COM,
chuẩn COM rất khó vượt qua được
tường lửa. Do vậy khả năng trao đổi dữ
liệu ADO qua Internet thường nhiều
hạn chế.
ADO.NET trao đổi dữ liệu qua
Internet rất dễ dàng ADO.NET
được thiết kế theo chuẩn XML,
chuẩn dữ liệu chính được sử
dụng để trao đổi trên Internet.
29/09/2010
5
Khoa CNTT-ĐH.KHTN
4. CONTENT COMPONENT
Content component các lớp đối tượng đại
diện cho dữ liệu cần xử lý. Trong ADO.NET dữ
liệu được đại diện bởi DataSet nhưng dưới một
hình ảnh thu gọn, nhiều table và các mối
quan hệ. Các lớp đối tượng chính của content
component bao gồm:
DataSet
DataTable
DataView
DataRow
DataColumn
DataRelation
25 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
4.1 DataSet
26 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
4.1 DataSet
ADO.NET chứa dữ liệu trong DataSet cùng với
mối quan hệ giữa các dữ liệu nội tại bên trong.
DataSet giống như một hình nh về CSDL trong
bộ nhớ, thể nhiều DataTable các mối
quan h giữa chúng đại diện bởi các
DataRelation.
27 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
4.2 DataTable
28 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
4.2 DataTable
29 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
4.2 DataTable
DataTable một thành phần của DataSet.
DataTable chứa dữ liệu của một bảng trong
DataSet. DataTable bao gồm hai thành phần:
Tập hợp Columns thuộc lớp
DataColumnCollection trong đó mỗi cột một
đối tượng thuộc lớp DataColumn.
Tập hợp Rows thuộc lớp DataRowCollection
trong đó mỗi dòng một đối tượng thuộc lớp
DataRow.
30 ThS. Nguyễn Tấn Trần Minh KhangGV. Trương Phước Lộc