Lập trình Windows
Chương 5. Giới thiệu ADO .NET
1
Nội dung
• Thiết kế ứng dụng CSDL
• Kiến trúc ADO.NET
2
Thiết kế ứng dụng CSDL
• Ứng dụng CSDL (Data–Centric Applications hay Database Centric Applications hay Data – Driven
Application) là loại ứng dụng mà dữ liệu hay CSDL đóng vai trị tiên quyết
• Ví dụ:
• Chương trình quản lý nhà sách
• Hệ thống chương trình quản lý ngân hàng
3
Giới thiệu ADO.NET
Khái niệm ứng dụng CSDL
Data source
4
Thiết kế ứng dụng CSDL
• Các loại Data Storage được hỗ trợ trong .NET
• File dữ liệu khơng cấu trúc
• File dữ liệu có cấu trúc
• CSV, Excel, …
• File dữ liệu phân cấp (Hierarchical)
• XML, …
• CSDL quan hệ
• Oracle, DB2, MS SQL Server, MS Access, …
5
Thiết kế ứng dụng CSDL
• Mơi trường connected là mơi trường mà ứng dụng luôn luôn kết nối đến nơi cung cấp dữ liệu (data
source)
• Ưu điểm:
• Dễ đồng bộ dữ liệu
• Dễ bảo mật
• Khuyết điểm
• Ln kết nối mạng liên tục
• Khó mở rộng
6
Thiết kế ứng dụng CSDL
• Mơi trường Disconnected là mơi trường mà ứng dụng sao chép một tập con dữ liệu từ data storage
về phía ứng dụng để dùng
• Ưu điểm:
• Truy cập dữ liệu khi thuận lợi
• Nhiều người dùng có thể dùng kết nối
• Tăng cường hiệu quả và khả năng mở rộng ứng dụng
• Khuyết điểm
• Dữ liệu khơng ln ln cập nhật dữ liệu
• Phải giải quyết tranh chấp
7
Thiết kế ứng dụng CSDL
“Thin” Client
XML
XMLWeb
Web
Client logic
Business logic
service
service
“Fat” Client
Data storage
1-Tier
(monolithic)
2-Tier
3-Tier
N-Tier
Internet
8
Kiến trúc ADO.NET
• Application và Database
• Database Lưu thơng tin dưới dạng: Tables gồm tập
• Rows và Columns và các Values bên trong nó
• Các Relationships giữa các Tables
• Application
• Biểu diễn dữ liệu dưới dạng Object
Object
Thư viện
Tables, Rows,
truy cập dữ liệu
Values, Relationship
9
Kiến trúc ADO.NET
Application
(C#, VB.NET, …)
Thư viện
truy cập dữ liệu
Data source
ADO.NET
Data–Driven Application
•
•
ADO.NET là một phần của .NET Framework
ADO.NET là một thư viện chứa các lớp thực hiện các chức năng
– Kết nối đến data source, Thực thi câu lệnh
– Lấy dữ liệu, Thao tác, Lưu trữ
10
Kiến trúc ADO.NET
• Các namespace quan trọng trong ADO.NET
• System.Data
• System.Data.Common
• System.Data.SqlClient
• System.Data.OleDb
• System.Data.SqlTypes
• System.Xml
11
Kiến trúc ADO.NET
Những đối tượng quan trọng trong ADO.NET
ADO.NET
Đối tượng Disconnected
Đối tượng Connected
DataSet
Application
DataTable
DataAdapter
Connection
Data
Command
Source
DataRow
Parameter
…
…
12
Kiến trúc ADO.NET
Những đối tượng quan trọng trong ADO.NET
• Các chức năng của ADO.NET nằm trong namespace
System.Data
Kiến trúc ADO.NET được chia làm 2 phần
•
•
Connected
Disconnected
Những lớp khác nhau của ADO.NET có thể phân loại thành: Connected và
Disconnected. Ngoại lệ là lớp DataAdapter
13
Kiến trúc ADO.NET
Những đối tượng quan trọng trong ADO.NET
• Các đối tượng Connected
• Connection
• Transaction
• DataAdapter
• Command
• Parameter
• DataReader
14
Kiến trúc ADO.NET
Những đối tượng quan trọng trong ADO.NET
• Các đối tượng Disconnected
• DataSet
• DataTable
• DataRow
• DataColumn
• DataView
• Constraint
• DataRelation
15
Kiến trúc ADO.NET
.NET Data Providers
• ADO.NET hiện thực (bao gồm) tập các lớp connected cho từng loại CSDL
• Ví dụ: Để kết nối với MS SQL Server, chúng ta có lớp giành riêng là SqlConnection
• Tập các lớp connected cho một CSDL nào đó được nằm trong 1 namespace riêng
• Ví dụ: System.Data.SqlClient
• Định nghĩa “.Net Data Provider”: Là một tập lớp connected nằm trong cùng 1 namespace và được thiết
kế để làm việc với một loại CSDL cụ thể
16
Kiến trúc ADO.NET
.NET Data Providers
.Net Data Provider
Đối tượng Disconnected
Đối tượng Connected
DataSet
Application
DataTable
DataRow
…
DataAdapter
Connection
Data
Command
Source
Parameter
…
17
Kiến trúc ADO.NET
.NET Data Providers
ADO.NET
.Net Data Provider
Application
cho SQL Server
S
Đối tượng
SQL Server
ter
ap
d
A
ata
qlD
.Net Data Provider
OracleDataAdapter
Disconnected
Ole
DbD
at a
Ada
pte
r
cho Oracle
Oracle
.Net Data Provider
cho OleDb
OleDb
18
Kiến trúc ADO.NET
.NET Data Providers
• Các loại .Net Data Provider
Tên Data Source
Provider Namespace
MS SQL Server 7.0 trở lên
System.Data.SqlClient
Oracle 8.1.6 trở lên
System.Data.OracleClient
ODBC
System.Data.ODBC
OleDb
System.Data.OleDb
XML trong SQL Server
System.Data.SqlXml
Kiến trúc ADO.NET
.NET Data Providers
• Chọn lựa .NET Data Provider
• SQL Server .NET Data Provider
•
SQL Server version 7.0 trở lên
•
Oracle 8.1.6 trở lên
•
SQL Server 6.5, Microsoft Access, Oracle version < 8.1.6, những data sources có OLE DB providers
•
Dùng cho các data sources chỉ hổ trợ ODBC drivers
• Oracle .NET Data Provider
• OLE DB .NET Data Provider
• ODBC .NET Data Provider
20
Kiến trúc ADO.NET
Ví dụ: Phương pháp kéo thả
• Bước 1: Thiết lập Data Source
• Dùng Data Source là SQL Server 2005
• Tên CSDL: StarterDB
• Tên Table: TableName
Create Table TableName
(
IDName int primary key,
ValueName varchar(100)
)
Go
Insert into TableName values(‘1’, ‘Hello’)
Go
21
Kiến trúc ADO.NET
Ví dụ: Phương pháp kéo thả
• Bước 2: Tạo ứng dụng Windows Forms
• Tên ứng dụng: VDKeoTha
• Mở form Form1 trong Design mode
• Bước 3: Mở cửa sổ Data Source
• Chọn Data Show Data Sources
• Trong cửa số Data Source: Click vào liên kết Add New Data Source
22
Kiến trúc ADO.NET
Ví dụ: Phương pháp kéo thả
• Bước 4: Chọn loại Data Source
• Chọn Database
• Click nút Next
23
Kiến trúc ADO.NET
Ví dụ: Phương pháp kéo thả
• Bước 5: Thiết lập thơng tin kết nối
• Click vào nút New Connection
• Chọn Microsoft SQL Server
• Click nút “Continue”
24
Kiến trúc ADO.NET
Ví dụ: Phương pháp kéo thả
• Điền các thơng tin về
CSDL
• Click Test Connection
để kiểm tra thơng tin
nhập vào
• Click OK 2 lần để chấp
nhận Data Source
25