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