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

Tuan09 c net ado net

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 (1.14 MB, 21 trang )

10/31/2018

Lập trình Ứng dụng quản lý
C#.NET
ADO.NET

Nội dung
 Tổng quan ADO.NET

 Các mơ hình kết nối
 Ứng dụng có kết nối Database
 Mẫu thiết kế Factory trong ADO.NET

1


10/31/2018

Nội dung
 Tổng quan ADO.NET
 Các mơ hình kết nối
 Ứng dụng có kết nối Database
 Mẫu thiết kế Factory trong ADO.NET

Tổng quan ADO.NET
 Các hệ quản trị CSDL thông dụng
 FoxPro
 MS Access
 SQL Server
 Oracle
 DB2


 MySQL
…

2


10/31/2018

Lịch sử phát triển
 Lịch sử phát triển phương pháp kết nối thống

nhất
 ODBC (Open Database Connectivity): là các giao

diện đặc tả phương thức thống nhất mà các nhà
phát triển hệ CSDL phải hiện thực bằng ngôn ngữ
C/C++.
 OLEDB (Object Linking and Embeding Database):
cải tiến hơn ODBC, liên kết tốt hơn với thư viện
nguyên gốc (native) của hệ CSDL. Đóng gói cả
ODBC.
 ADO (ActiveX Data Object): cải tiến thêm, dễ dàng
cho người phát triển ứng dụng.
 ADO.NET: là thay thế ADO (khác hồn tồn ADO)
tương thích nền .NET.

Mơ hình tổng quát

3



10/31/2018

Khái niệm
 ADO.NET là một tập các lớp thư viện được sử

dụng để truy xuất dữ liệu
Thêm/xóa/sửa dữ liệu

Đọc dữ liệu
Chương trình

CSDL, XML…

 Nằm trong bộ thư viện các lớp cơ sở của .Net

Framework

 ADO.NET là thành phần nội tại của .Net

Framework  có thể sử dụng trong các ngơn
ngữ hỗ trợ .Net (C#, VB.Net, ...)
ASP.NET

Windows Forms

Class Framework
Drawing

XML


Data

ADO.NET

Comman language Runtime

System Services

 Các lớp ADO.Net đặt trong System.Data
 Chức năng và cách sử dụng hoàn toàn giống

nhau.

4


10/31/2018

Lợi ích
 ADO kết nối CSDL tốt, nhưng
 Địi hỏi kết nối chuẩn COM và Windows
 Xử lý kết nối CSDL qua Internet khó khăn và khơng

tốt.
 ADO.Net
 Tích hợp chặt chẽ với XML
 Làm việc tốt trên môi trường Internet.

 ADO.Net là sự cải tiến của ADO

 Khác biệt nhau ở mơ hình (COM vs XML)
 Giống nhau về các chức năng.

Kiến trúc

5


10/31/2018

Cây phân cấp các đối tượng trong ADO.NET

Các thành phần cơ bản
 Connection: Là đối tượng có nhiệm vụ thực hiện

nhiệm vụ kết nối đến CSDL
 Command: Dùng để thực hiện các câu lệnh SQL
thao tác với CSDL như: Insert, Update, Select,
Delete
 DataReader: Dùng để đón nhận kết quả trả về từ
đối tượng Command
 DataAdapter: Có chức năng như một cầu nối
giữa nguồn (tệp) dữ liệu và các bảng được
cached trong bộ nhớ

6


10/31/2018


.NET Data Provider
.NET Data Provider
XXXConnection

XXXCommand
XXXDataReader
Data Source
DataSet

XXXDataAdapter

(CSDL)

XXXParameter
XXXTransaction

 Các Data Provider cơ bản
 System.Data.OleDb: Access, SQL Server, Oracle
 System.Data.SqlClient: SQL Server
 System.Data.OracleClient: Oracle

 Ghi chú:
 Về mặt giao tiếp lập trình ứng dụng, cả 3 thư viện

trên không khác biệt nhau nhiều lắm.
 Dùng thư viện System.Data.SqlClient sẽ truy xuất
SQL Server nhanh hơn System.Data.OleDb
 Dùng thư viện System.Data.OracleClient sẽ truy
xuất Oracle nhanh hơn System.Data.OleDb


7


10/31/2018

Thành phần giữ dữ liệu
 DataTable là một đối tượng có thể chứa một

bảng trong database trên bộ nhớ.
 DataSet là một đối tượng có thể chứa nhiều
DataTable cùng với mối liên hệ giữa chúng
(relationship) và kể các ràng buộc (constraint)
được lưu hoàn toàn trong bộ nhớ để làm việc
offline. Như vậy DataSet được dùng để nắm giữ
dữ liệu của mọi database và cho phép thay đổi
dữ liệu bên trong nó, sau đó cập nhật lại cho
database.

Mối quan hệ

8


10/31/2018

 Các property quan trọng
 DataSet
 Tables: chứa các DataTable.
 Relations: chứa các DataRelation.
 DataTable

 Columns: chứa các DataColumn.
 Rows: chứa các DataRow.
 Constraints: chứa các Constraint.

DataView
 DataView: dùng để trình bày dữ liệu có trong đối

tượng DataTable dưới hình thức sắp xếp, lọc, tìm
kiếm, hiệu chỉnh và điều hướng.
 AllowDelete, AllowEdit, AllowNew: các thuộc tính

để cho phép tương tác với dữ liệu hiển thị của
DataView.
 Count: trả về số lượng mẩu tin đang truy vấn.
 RowFilter: thuộc tính này cho phép lọc dữ liệu
trong DataView tương tự mệnh đề WHERE trong
câu lệnh SQL.
 Sort: thuộc tính cho phép sắp xếp các mẩu tin theo
điều kiện.

9


10/31/2018

Thành phần con
 DataColumn: là phần tử cơ bản tạo nên

DataTable
 ColumnName: tên của column.

 DataType: kiểu dữ liệu trong column.
 AllowDBNull: cho phép dữ liệu null hay không.
 DefaultValue: dữ liệu mặc định.
 Unique: ràng buộc dữ liệu duy nhất.

 DataRow: là đối tượng nắm giữ dữ liệu cho

DataTable.
 DataRowView: là đối tượng nắm giữ dữ liệu của
DataView.

Nội dung
 Tổng quan ADO.NET

 Các mơ hình kết nối
 Ứng dụng có kết nối Database
 Mẫu thiết kế Factory trong ADO.NET

10


10/31/2018

Mơ hình kết nối
 Connected Model

Command

Connection
Chương trình


DataReader

Connection
 Connection: Kết nối vào CSDL
 Các lớp phụ trách kết nối
 ODBCConnection
 OleDBConnection
 SqlConnection
 OracleConnection
 Thuộc tính quan trọng
 ConnectionString: xác định nguồn dữ liệu cần kết nối
 Phương thức quan trọng
 Open: mở kết nối
 Close: đóng kết nối

11


10/31/2018

Command
 Command: Thực hiện lệnh
 Các lớp phụ trách
 ODBCCommand
 OleDBCommand
 SqlCommand
 OracleCommand
 Thuộc tính quan trọng
 Connection: xác định CSDL sẽ thực hiện thao tác

 CommandText: xác định thao tác cần thực hiện
 Parameters: xác định các tham số lệnh
 Phương thức quan trọng
 ExecuteReader: phù hợp lệnh Select trả ra 1 bảng dữ liệu
 ExecuteScalar: phù hợp lệnh Select trả ra 1 giá trị
 ExecuteNonQuery: phù hợp lệnh Insert, Delete, Update

Reader
 Reader: Thực hiện lệnh
 Đọc dữ liệu từ CSDL



Dùng lệnh ExecuteReader hoặc
ExecuteScalar
Lớp XXXDataReader
 Read
 GetXXX
 IsDBNull
Dữ liệu chỉ

đọc theo
chiều tiến
(Readonly)

Book BookNam Author
ID e
1

Book 1


Author
1

2

Book 2

Author
2

3

Book3

Author
3

12


10/31/2018

Mơ hình ngắt kết nối
 Disconnected Model

DataAdapter
Chương trình

Thành phần

DataAdapter
SelectCommand

DataSet

InsertCommand
UpdateCommand

Data Source

DeleteCommand

 Fill: dùng SelectCommand lấy dữ liệu từ Data
Source đổ vào DataSet.
 Update: dùng InsertCommand, UpdateCommand
và DeleteCommand cập nhật dữ liệu trong DataSet
vào Data Source.

13


10/31/2018

Nội dung
 Tổng quan ADO.NET
 Các mơ hình kết nối
 Ứng dụng có kết nối Database
 Mẫu thiết kế Factory trong ADO.NET

Ứng dụng kết nối Database

 Cấu hình chương trình
 Mỗi chương trình khi chạy đa phần cần có những

tham số ràng buộc tùy theo ngữ cảnh, liên hệ bên
ngoài. Ví dụ: cách thức hiển thị, cách kết nối
database,…
 Làm sao để thay đổi các tham số kể trên mà khơng
phải biên dịch lại chương trình.
 Giải pháp ở đây là sử dụng Configuration của .NET.

14


10/31/2018

Ứng dụng kết nối Database (tt)
 Cấu hình chương trình
 System.Configuration là namespace cung cấp các

mơ hình lập trình để xử lý các dữ liệu về cấu hình
(config).
 Với chương trình Application.NET thì dữ liệu cấu
hình sẽ lưu trong file App.config.
 Với chương trình ASP.NET thì dữ liệu cấu hình lưu
trong fiel Web.config.
 Cách dùng Application config: Yêu cầu bắt buộc
đầu tiên phải add reference thư viện
System.Configuration

Ứng dụng kết nối Database (tt)

 Sau đó add file config vào project.

 Thêm nội dung vào file config

15


10/31/2018

Ứng dụng kết nối Database (tt)
 ConfigurationManager
 Thuộc namespace System.Configuration
 Hỗ trợ xử lý dữ liệu trong file cấu hình.
 Cần quan tâm 2 thuộc tính quan trọng là:

AppSettings và ConnectionStrings.
 Ví dụ để lấy chuỗi connection string từ file config
trên

Ứng dụng kết nối Database (tt)
 DataGridView
 Là đối tượng dùng để trình bày dữ liệu có trong

DataSet, DataTable, DataView dưới hình thức khác
nhau.
 Có thể tùy biến các column để thêm các control
như: Button, TextBox, ComboBox, CheckBox,
Image, Link.

16



10/31/2018

Ứng dụng kết nối Database (tt)
 Các property:
 DataSource: để gắn kết nguồn dữ liệu mà





DataGridView sẽ trình bày.
CurrentRow: để lấy ra mẩu tin đang được chọn.
CurrentCell: để lấy ra ô được chọn.
DefaultCellStyle: để định dạng hiển thị cho ô.
Columns: chứa các DataGridViewColumn (có các lớp
dẫn xuất tương ứng)
 DataGridViewTextBoxColumn: column dạng TextBox.
 DataGridViewCheckBoxColumn: column dạng CheckBox.
 DataGridViewComboBoxColumn: column dạng ComboBox.
 …

 Các event:
 SelectionChanged
 DoubleClick

Nội dung
 Tổng quan ADO.NET


 Các mơ hình kết nối
 Ứng dụng có kết nối Database
 Mẫu thiết kế Factory trong ADO.NET

17


10/31/2018

Mẫu thiết kế Factory trong ADO.NET
 ADO.NET xây dựng một nền tảng độc lập với Hệ

quản trị cơ sở dữ liệu nên các phương pháp kết
nối và truy vấn database là tương đồng với mọi
dạng database (Oracle, SQL, Access, MySQL,…)
 Ví dụ:
 Đối tượng Connection đảm nhận việc mở và đóng

kết nối với các phương thức: Open, Close,…
 Đối tượng Command đảm nhận việc thực thi lệnh
với các phương thức: ExecuteReader,
ExecuteNonQuery, ExecuteScalar,…

Mẫu thiết kế Factory trong ADO.NET (tt)
 Tuy nhiên với mỗi Hệ quản trị CSDL khác nhau

thì có cách thức kết nối và truy vấn riêng biệt
(driver) nên các lớp đối tượng kể trên là khác
nhau.
 Ví dụ:

 Với SQL: SqlConnection, SqlCommand,…
 Với Access: OleDbConnection,

OleDbCommand,…
 Vậy làm cách nào để có thể cài đặt thật sự độc

lập với Hệ quản trọ CSDL ???

18


10/31/2018

Mẫu thiết kế Factory trong ADO.NET (tt)
 Abstract Factory Design Pattern

Mẫu thiết kế Factory trong ADO.NET (tt)
 Ví dụ

19


10/31/2018

Mẫu thiết kế Factory trong ADO.NET (tt)
 Microsoft.NET đã hiện thực mẫu thiết kế Factory

trong ADO.NET để giải quyết vấn đề “độc lập” với
các Hệ quản trị CSDL.
 Các thành phần quan trọng

 Các lớp đối tượng Dbxxx trong namespace

System.Data.Common
 Lớp đối tượng abstract DbProviderFactory thường
được tạo cụ thể từ phương thức tĩnh GetFactory
của DbProviderFactories.

Mẫu thiết kế Factory trong ADO.NET (tt)

20


10/31/2018

Bài tập
 Xây dựng ứng dụng cho phép kết nối với

database QLHS với yêu cầu sử dụng cả SQL
server và MySQL (có thể thay đổi bởi người
dùng).

21



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×