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
• CSV, Excel, …
• File dữ liệu có cấu trúc
• XML, …
• File dữ liệu phân cấp (Hierarchical)
• Oracle, DB2, MS SQL Server, MS Access, …
• CSDL quan hệ
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
• Khuyết điểm
• Dễ bảo mật
• Luôn 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
• Khuyết điểm
• Tăng cường hiệu quả và khả năng mở rộng ứng dụng
• Dữ liệu không luôn luôn 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 Web service
“Fat” Client
Client logic Business logic Data storage
2-Tier
3-Tier
1-Tier (monolithic )
N-Tier
Internet
8
Kiến trúc ADO.NET
• Application và Database
• Rows và Columns và các Values bên trong nó
• Các Relationships giữa các Tables
• Database Lưu thông tin dưới dạng: Tables gồm tập
• Biểu diễn dữ liệu dưới dạng Object
• Application
Object
Thư viện truy cập dữ liệu
Tables, Rows, Values, Relationship
9
Kiến trúc ADO.NET
Data source
Application (C#, VB.NET, …)
Thư viện truy cập dữ liệu 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
DataAdapter
Data Source
Application
DataSet DataTable DataRow …
Connection Command 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
DataAdapter
Data Source
Application
DataSet DataTable DataRow …
Đối tượng Connected Connection Command Parameter …
17
OleDbDataAdapter
Kiến trúc ADO.NET .NET Data Providers
ADO.NET
Application
SQL Server
.Net Data Provider cho SQL Server
OracleDataAdapter
.Net Data Provider cho Oracle
Oracle
Đối tượng Disconnected
OleDb
.Net Data Provider cho OleDb
18
r
p t e
a
d
A
a t a
q l D
S
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 .NET Data Provider
• Oracle 8.1.6 trở lên
• OLE DB .NET Data Provider
• SQL Server 6.5, Microsoft Access, Oracle version < 8.1.6,
những data sources có OLE DB providers
• ODBC .NET Data Provider
• Dùng cho các data sources chỉ hổ trợ ODBC drivers
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
• Bước 3: Mở cửa sổ Data Source
• Mở form Form1 trong Design mode
• 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ả
CSDL
• Điền các thông tin về
• Click Test Connection để kiểm tra thông tin nhập vào
nhận Data Source
• Click OK 2 lần để chấp
25
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả
26
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả
• Bước 6: Chọn lưu chuỗi kết nối
27
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả
• Bước 7: Chọn các đối tượng trong CSDL
• Chọn các bảng, các cột
• Click nút Finish
28
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả
• Bước 8: Chọn các hiển thị dữ liệu trên Form
dụng
• Lúc này một data source có tên StarterDataSet được thêm vào ứng
• Click nút Drop-Down kế bảng TableName Chọn DataGridView
29
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả
• Bước 9: Kéo và Thả
• Thao tác trên sinh ra một số controls
• Kéo bảng TableName vào trong Form1
30
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả
• Một số code do IDE sinh ra
• Chuỗi kết nối trong file app.config
31
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả
• Code trong form
32
Kiến trúc ADO.NET Ví dụ: Phương pháp lai
• Phương pháp lai: Sử dụng drap and drop – tự mình viết thêm
code
• Các bước tiến hành
• Bước 1: Tạo ứng dụng
dụng
• Bước 2: Dùng phương pháp kéo thả để thêm 1 data source vào ứng
• Bước 3: Viết code
33
Kiến trúc ADO.NET Ví dụ: Phương pháp lai
34
Kiến trúc ADO.NET Ví dụ: Phương pháp tự viết code
• Bước 1: Tạo kết nối
• Bước 2: Tạo command chứa câu SQL
• Bước 3: Mở kết nối
• Bước 4: Chạy command
• Bước 5: Đóng kết nối
• Bước 6: Hiện dữ liệu
35
Kiến trúc ADO.NET Ví dụ: Phương pháp tự viết code
36
Tóm tắt chương 5
• ADO.NET là thư viện giúp việc kết nối giữa ứng dụng và data source. Thư viện này nằm trong System.Data
• ADO.NET gồm 2 phần
• Disconnected
• Connected
• Phần Disconnected sử dụng phần Connected để kết
nối với data source
• Một số tiếp cận viết code ADO.NET
• Phương pháp Drap-and-drop
• Phương pháp Tự viết code
• Phương pháp Lai
37
Q&A
38 38