Tải bản đầy đủ (.pdf) (72 trang)

Bài giảng Lập trình web ASP.NET Chương 4 (TS. Vũ Đức Lung, KS. Phan Hữu Tiếp)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.63 MB, 72 trang )

Trường Đại Học Lạc Hồng 2009 - 2010

LẬP TRÌNH
WEB ASP.NET
Ts. Vũ Đức Lung
Ks. Phan Hữu Tiếp

Chương 4:
Xử Lý Dữ Liệu Với ADO.NET
1



LHU


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Nội dung chính
 Giới thiệu về ADO.NET
 Các đối tượng trong ADO.NET
 Điều khiển liên kết dữ liệu

2

http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

3



http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Giới thiệu về ADO.NET
 Ứng dụng cần CSDL: người dùng, ứng dụng, file,…
 CSDL quan hệ => lưu trữ theo hệ quản trị CSDL: Access, MS
SQL Server, Oracle.
 Người thiết kế quan tâm:







Lưu trữ dữ liệu tập trung
Đảm bảo toàn vẹn dữ liệu
Khả năng truy xuất đồng thời
Thời gian hồi đáp ngắn
Bảo mật dữ liệu
Trao đổi giữa các hệ thống khác nhau

4

http:// lhu.edu.vn



Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Giới thiệu về ADO.NET
 ADO.NET (Active Data Object) là một phần của .NET
Framework, cung cấp các dịch vụ xử lý dữ liệu
 Làm việc với dữ liệu không kết nối
 Dữ liệu được lưu trữ trong một CSDL thu nhỏ gọi là DataSet
=>tăng tốc độ tính tốn, giảm sử dụng tài ngun trên
Database server.
 Khả năng xử lý dữ liệu dạng chuẩn XML =>làm việc với nhiều
ứng dụng khác

5

http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Giới thiệu về ADO.NET

6

http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Giới thiệu về ADO.NET
 Kiến trúc ADO.NET có hai đối tượng chính: Dataset (data

table) và .NET data provider (Data Adapter, DataReader,
Command, Connection)
 Dataset lưu data từ Database
 Để nhận data từ CSDL, DataAdapter dùng câu lệnh SELECT
trong Command, để cập nhật data dùng INSERT, UPDATE,
DELETE

7

http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Giới thiệu về ADO.NET
 Các thành phần trong ADO.NET







DataSet
DataTable
DataView
DataRow
DataColumn
DataRelation


8

http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Các thành phần trong ADO.NET
 Managed provider component: gồm DataAdapter, DataReader
giữ nhiệm vụ làm việc trực tiếp như tập tin, database,…
 Content component: gồm Dataset, DataTable, đại diện cho dữ
liệu thực sự cần làm việc.
 DataReader là đối tượng mới, giúp việc truy xuất dữ liệu nhanh
chóng nhưng chỉ được phép đọc và di chuyển tới
 Dataset cũng là đối tượng mới, khơng chỉ là dữ liệu, Dataset cịn
có thể coi là một bản sao gọn nhẹ của CSDL trong bộ nhớ với
nhiều bảng và có các mối quan hệ. Dataset hỗ trợ XML thông
qua đối tượng XMLDataDocument.
 DataAdapter là đối tượng kết nối giữa DataSet và CSDL. Nó
gồm Connection và Commmand, để cung cấp dữ liệu cho
Dataset, cũng như cập nhật dữ liệu từ DataSet xuống CSDL.
9

http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Các thành phần trong ADO.NET


10

http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Các thành phần trong ADO.NET
 DataSet:
 DataSet dùng để chứa dữ liệu lấy từ CSDL lớn ( SQL, Aceess)
sau đó mọi thơng tin cần thiết sẽ được truy xuất từ DataSet
 Nói 01 cách khác DataSet là CSDL thu nhỏ từ CSDL lớn
 Trong Dataset sẽ chứa các bảng là thông tin mà chúng ta cần
lấy.Trong DataSet sẽ có nhiều DataTable và các mối quan hệ
giữa chúng đại diện bởi các DataRelation
 Dataset giống như là hình ảnh về CSDL trong bộ nhớ .

11

http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Các thành phần trong ADO.NET
 Lợi ích trong việc sử dụng DataSet
 Hoàn toàn trong bộ nhớ: Một Table trong Dataset là một Array of
Rows, nên ta có thể dùng thẳng (direct access) một record bằng cách
nói đến cái Row chứa nó, chớ không cần phải dùng MoveNext,
MovePrev,.v.v.

 Làm nhẹ công tác của Database server. Tất cả mọi công tác sửa đổi dữ
liệu đều được thực hiện trong Dataset.
 Dataset có thể được biểu diễn bằng một XML (eXtensible Marked
Language)

12

http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Các thành phần trong ADO.NET
 DataTable:
 DataTable là 01 thành phần trong Dataset
 DataTable chứa dữ liệu của 01 bảng trong Dataset và thuộc lớp
DataTable. DataTable bao gồm
• Tập hợp Columns thc lớp DataColumnCollection trong đó mỗi cột
là một đối tượng thuộc lớp DataColumn
• Tập hợp Rows thc lớp DataRowCollection trong đó mỗi cột là một
đối tượng thuộc lớp DataRow

13

http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Các thành phần trong ADO.NET

 DataRelation:
 Dataset bao gồm tập hợp các table đại diện bởi các đối tượng
DataTable và quan hệ giữa các table đó đại diện bởi các đối
tượng DataRelation
 DataRelation, người dùng có thể:
• Định nghĩa mối quan hệ giữa các bảng
• Duyệt dữ liệu trong các bảng theo mối quan hệ Master – Detail

 Một đối tượng kiểu DataRelation bao gồm các thơng tin:
• Tên của Parent Table và Child Table
• Các column trong DataRelation đại diện cho PrimaryKey
Parent và ForeignKey trong Child Table

14

trong

http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Các thành phần trong ADO.NET
 DataRelation:
 Với DataRelation, ADO.NET cung cấp cho người lập trình một
cách thức mới để xử lý dữ liệu. Dữ liệu vẫn nằm trong các bảng
thay vì bị gom từ nhiều bảng thành 01 RecordSet nhưng vẫn có
thể truy cập dễ dàng và hiệu quả.
 Ví dụ: trong parent table có 10 dịng, mỗi dịng trong Parent table
có 10 dòng con trong Child table

 Cách cũ: dùng 01 truy vấn kết hợp hai bảng để lấy 1 lần 100
mẫu tin hay dùng 02 RecordSet, mỗi lần RecordSet Master thay
đổi mẫu tin hiện hành thì mở lại RecordSet Detail

15

http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Các thành phần trong ADO.NET
 DataRelation:
 Khuyết điểm: dữ liệu bị lấy thừa vì khơng chắc người dùng sẽ đi
xem hết 100 mẫu tin đã lấy và khó thao tác thêm, sửa, xóa, Với
cách thứ 2, dữ liệu chỉ lấy vừa đủ nhưng chậm hơn vì mỗi lần
thay đổi Master lại phải truy vấn dữ liệu cho Detail
 Phương pháp mới: Chỉ cần lấy dữ liệu 01 lần duy nhất
nhưng dữ liệu vẫn nằm trong các bảng, dễ dàng thao tác xử


16

http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Các thành phần trong ADO.NET
 Ràng Buộc Trên Quan Hệ: ADO.NET chỉ cho phép xác định 02

loại ràng buộc
 UniqueConstraint: đảm bảo tính duy nhất về giá trị của một cột trong
table
 ForeignKeyContraint: chỉ ra cách ứng dụng sẽ thực hiện khi cập nhật
hay xóa dữ liệu trên bảng có quan hệ với bảng khác

 Các giá trị của ForeignKeyContraint là:
 None: khơng làm gì cả
 Cascade: phụ thuộc vào dịng trên parent table sẽ bị cập nhật hay
xóa
 SetDefault:giá trị của cột khóa ngoại trên detail table được đặt về giá
trị mặc định khi dịng trên parent table bị xóa
 SetNull: giống SetDefault , giá trị được đặt là NULL
17

http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Các thành phần trong ADO.NET
 DataView:
 DataView gần giống với khái niệm RecordSet của ADO. Trên
một DataTable có thể tạo nhiều DataView với các điều kiện lọc,
sắp xếp dữ liệu khác nhau. Trên DataView ta có thể xem hay
thay đổi giá trị các mẫu tin
 DataView của ADO.NET có nhiệm vụ kết nối với các control của
WinForm và Web Form

18


http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Điểm nổi bật trong ADO.NET






Tương tác giữa nhiều hệ thống khác nhau (Interoperability)
Hỗ trợ nhiều người dùng (Scanlability)
Mở rộng khả năng làm việc với CSDL (Productivity)
Hiệu quả cao trong xử lý dữ liệu (Performance)
Cơ chế làm việc ở ADO.NET:
Xử dụng dữ liệu ở dạng disconnect data
Client tạo kết nối với server để lấy dữ liệu
Server gửi dữ liệu về cho Client
Client ngắt kết nối với Server
Khi cần cập nhật dữ liệu, kết nối giữa Client và Server được
phục hồi
 Thời gian kết nối giữa Client và Server khơng cịn lâu như trước







19

http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Các đối tượng trong ADO.NET
 Khai báo và sử dụng không gian tên (namespace)
<%@ Import Namespace="System.Data.OleDb" %>

Mục đích

Namespace
-System.Data
-System.Data.OleDb
-System.Data.SqlClient

-Các đối tượng và kiểu cơ bản phục
vụ ADO.NET
-Các lớp được thiết kế để làm việc
với bất kỳ nguồn dữ liệu nào
- Thiết kế tối ưu cho CSDL SQL
server

20

http:// lhu.edu.vn



Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Đối tượng Connection
 Data Provider:
 Data Provider có sẵn trong ADO.NET
• System.Data.OleDb
• System.Data.SqlClient

 Ứng với mỗi tên miền có một connection tương ứng
 System.Data.OleDb.OleDbConnection
 System.Data.SqlClient.SqlConnection

 Cả OleDBConnection và SQLConnection đều có các thuộc tính
và phương thức giống nhau như ConnectionString , State hay
Open
- Các Provider mà OLEDB và SQL có thể kết nối dữ liệu:
 SQLOLEDB: OLEDB Provider của Microsoft cho SQL Server
 MSDAORA: OLEDB Provider của Microsoft cho Oracle
 JOLT: OLEDB Provider cho Jet
21

http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Đối tượng Connection
 Connection String:Cung cấp thông tin cần thiết cho kết nối.
 Trước khi thực hiện kết nối cần thông báo các thơng tin cần

thiết cho Connection thơng qua thuộc tính Connection String.
Cách khai báo thay đổi tùy thuộc vào Data Provider.
 Phụ thuộc vào Data Provider
 OleDB Provider có thể gồm các thành phần:

22

http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Đối tượng Connection
 Ví dụ 1: Tạo connection đến CSDL Microsoft Access

 Ví dụ 2: Tạo connection đến CSDL SQL Server

23

http:// lhu.edu.vn


Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Đối tượng Connection

24

http:// lhu.edu.vn



Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

Đối tượng Connection
 Ví dụ 3: Tạo connection đến CSDL SQL Server

25

http:// lhu.edu.vn


×