Bài giảng Lập trình Ứng dụng quản lý - Tuần 9: ADO.NET

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 hoàn toà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  
XXXDataAdapter  
XXXParameter  
XXXTransaction  
Data Source  
(CSDL)  
DataSet  
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  
DataReader  
Chương trình  
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  
Book BookNam Author  
ID  
e
Dùng lệnh ExecuteReader hoặc  
1
Book 1  
Author  
1
ExecuteScalar  
Lớp XXXDataReader  
Read  
2
3
Book 2  
Book3  
Author  
2
GetXXX  
Author  
3
IsDBNull  
Dữ liệu chỉ  
đọc theo  
chiều tiến  
(Readonly)  
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  
InsertCommand  
UpdateCommand  
DeleteCommand  
DataSet  
Data Source  
F: dùng SelectCommand lấy dữ liệu từ Data  
Source đổ vào DataSe.  
Updat: dùng InsertComman, UpdateCommand  
và DeleteCommand cập nhật dữ liệu trong DataSet  
vào Data Sourc.  
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  
Tải về để xem bản đầy đủ
pdf 21 trang myanh 18060 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình Ứng dụng quản lý - Tuần 9: ADO.NET", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_lap_trinh_ung_dung_quan_ly_tuan_9_ado_net.pdf