38
1 1 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM http://www.facebook.com/groups/hoclaptrinhweb/

Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

Embed Size (px)

DESCRIPTION

Mô hình dữ liệu ngắt kết nối ADO.NET là gì? Tiến trình đọc (Loading) và ghi (Saving) dữ liệu của DataSet DataView là gì?

Citation preview

Page 1: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

11

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Page 2: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

22

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối

(Disconnected) 1.Mô hình dữ liệu ngắt kết nối ADO.NET là gì?

2.Tiến trình đọc (Loading) và ghi (Saving) dữ liệu của DataSet

3.DataView là gì?

Page 3: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

33

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

1. Mô hình ngắt kết nối là gì?

•Mô hình dữ liệu kết nối và ngắt kết nối

•Tạo các đối tượng DataSet và DataTable

•Tạo các DataColumn của DataTable

•Khai báo các ràng buộc (constraint) và các quan hệ (relation) của các DataTable

•Cập nhật dữ liệu cho DataTable

Page 4: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

44

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Mô hình kết nối và ngắt kết nối

•Mô hình dữ liệu kết nối (connected model)

Cho phép người dùng mở và duy trì kết nối đến CSDL để thực hiện lệnh

Sử dụng đối tượng Connection và Command

•Mô hình dữ liệu ngắt kết nối (disconnected model)

Cho phép người dùng kết nối đến CSDL, đọc và lưu trữ dữ liệu vào vùng nhớ, sau đó ngắt kết nối. Có thể thực hiện các cập nhật trên vùng nhớ này và ghi trở lại CSDL

Sử dụng đối tượng Connection và DataAdapter

Page 5: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

55

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

What Is the ADO.NET Disconnected Model?

Page 6: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

66

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Tạo DataSet và DataTable

•DataSet là gì?

Là một CSDL thu nhỏ đặt trong vùng nhớ

DataSet chứa các DataTable, DataRelation

Thuộc tính Tables chứa các DataTable của DataSet

Thuộc tính Relations chứa các DataRelation của DataSet

•Tạo DataSet

Khởi tạo một DataSet

Khởi tạo các DataTable và sử dụng phương thức Add

Page 7: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

77

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Tạo đối tượng DataSet

•Khai báo và khởi tạo

‘Tạo DataSetDataSet du_lieu = new DataSet(“QLSV”);

‘Tạo DataTableDataTable bang = new DataTable(“SV”);

‘Thêm DataTable vào DataSetdu_lieu.Tables.Add(bang);

Page 8: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

88

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Tạo các DataColumn của DataTable

•Đối tượng DataColumn

Là các cột của DataTable

Thuộc tính Columns chứa các DataColumn của DataTable

•Các thuộc tính của DataColumn

Tên (name)

Kiểu dữ liệu (data type)

Kích thước (size)

Page 9: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

99

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Tạo đối tượng DataColumn

•Khai báo và khởi tạo

‘Tạo DataColumnDataColumn cotTenKH = new DataColumn(“TenKH”, Type.GetType(“System.String”));cotTenKH.MaxLength = 50;

‘Thêm DataColumn vào DataTablebang.Columns.Add(cotTenKH);

Page 10: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

1010

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Đối tượng DataColumn

•Chỉ đọc: thuộc tính ReadOnly

•Không được Null: thuộc tính AllowDBNull

•Duy nhất: thuộc tính Unique

•Cột tăng tự động

Thuộc tính AutoIncrement

Thuộc tính AutoIncrementSeed

Thuộc tính AutoIncrementStep

•Cột đóng vai trò là biểu thức

Page 11: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

1111

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Minh họa tạo cấu trúc DataTable

•Tạo DataTable tên Hang_Hoa gồm các cột MHH, Ten, Sl, Dg, TT

•MHH kiểu số nguyên, tự động tăng, là khóa chính

•Ten kiểu chuỗi, duy nhất

•Sl kiểu số nguyên

•Dg kiểu số nguyên

•Tt bằng Sl*Dg, chỉ đọc

Page 12: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

1212

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Khai báo Constraint và Relation

•Constraint là các kiểm tra ràng buộc trên DataTable

Có hai loại: UniqueConstraint và ForeignKeyConstraint

Thuộc tính Constraints chứa các Constraint của DataTable

•Relation là quan hệ giữa hai DataTable

Tạo DataRelation gồm Tên quan hệ, các cột bảng cha, các cột của bảng con

Thuộc tính Relations chứa các DataRelation của DataSet

Page 13: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

1313

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Minh họa tạo Constraint

•Tạo các DataTable KHOA và SINH_VIEN

•KHOA gồm các cột Mã khoa, Tên khoa

•SINH_VIEN gồm các cột Mã sv, Họ Tên sv, Mã khoa

•Tạo constraint kiểm tra tên khoa là duy nhất

•Tạo constraint kiểm tra khóa ngoại mã khoa trong SINH_VIEN (bảng con) phải có trong KHOA (bảng cha)

Page 14: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

1414

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Minh họa tạo DataRelation

•Tạo các DataTable KHOA và SINH_VIEN

•KHOA gồm các cột Mã khoa, Tên khoa

•SINH_VIEN gồm các cột Mã sv, Họ Tên sv, Mã khoa

•Tạo DataRelation dựa trên cột Mã khoa trong SINH_VIEN (bảng con) và trong KHOA (bảng cha)

Page 15: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

1515

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Cập nhật dữ liệu cho DataTable

•DataRow

Là một dòng trong DataTable

Thuộc tính Rows chứa các DataRow của DataTable

•Cập nhật Thêm

Tạo một DataRow

Sử dụng phương thức Add để thêm DataRow vào DataTable

Page 16: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

1616

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Tạo đối tượng DataRow

•Khai báo và khởi tạo

‘Tạo DataRowDataRow dong = bang.NewRow();dong[0] = …;

‘Thêm DataRow vào DataTablebang.Rows.Add(dong);

Page 17: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

1717

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Cập nhật dữ liệu cho DataTable

•Cập nhật Xóa

Sử dụng phương thức Remove để xóa hẳn một DataRow ra khỏi DataTable

Sử dụng phương thức Delete để đánh dấu xóa một DataRow trong DataTable

Page 18: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

1818

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Cập nhật dữ liệu cho DataTable

•Ghi và không ghi các thay đổi trong DataTable

Sử dụng phương thức AcceptChanges để ghi

Sử dụng phương thức RejectChanges để không ghi

Page 19: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

1919

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Minh họa cập nhật DataTable

•Tạo một DataTable và thêm các dòng

•Hiển thị DataTable ra lưới

•Cho phép Thêm, Sửa, Xóa các dòng

•Xử lý các nút Ghi và Không ghi

•Minh họa phương thức Find để tìm kiếm

•Minh họa phương thức Select để chọn lọc

Page 20: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

2020

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

2. Tiến trình đọc và ghi dữ liệu của DataSet

•Khai báo và khởi tạo đối tượng DataAdapter

•Sử dụng đối tượng DataAdapter để đọc và ghi dữ liệu

Page 21: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

2121

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Page 22: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

2222

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Các DataAdapter trong .NET

•System.Data.SqlClient.SqlDataAdapter

•System.Data.OleDbClient.OleDbDataAdapter

•System.Data.Odbc.OdbcDataAdapter

•System.Data.OracleClient.OracleDataAdapter

Page 23: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

2323

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Khai báo và khởi tạo DataAdapter

•DataAdapter dùng để đọc dữ liệu từ CSDL và lưu trữ trong các DataTable của DataSet

•Trước khi đọc thì Connection tự động mở ra và sau khi đọc xong thi Connection tự động đóng lại

•DataAdapter sử dụng các Command sau

Select Command

Insert Command

Update Command

Delete Command

Page 24: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

2424

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Tạo đối tượng DataAdapter

•Khai báo và khởi tạo

‘Tạo DataAdapterstring lenh = “Select * From …”;SqlDataAdapter bo_doc_ghi = new SqlDataAdapter(lenh, ket_noi);

‘Đọc dữ liệuDataSet du_lieu = new DataSet();bo_doc_ghi.Fill(du_lieu);

Page 25: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

2525

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Minh họa sử dụng DataAdapter để đọc dữ liệu

•Tạo một DataAdapter để đọc dữ liệu của một bảng

•Dữ liệu đọc được sẽ lưu trữ trong DataTable của DataSet (hoặc DataTable không thuộc DataSet)

•Hiển thị dữ liệu ra màn hình

Page 26: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

2626

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Minh họa sử dụng DataAdapter để đọc dữ liệu

•Tạo các DataAdapter để đọc dữ liệu của các bảng cha và bảng con

•Dữ liệu đọc được sẽ lưu trữ trong DataTable của DataSet

•Hiển thị dữ liệu ra màn hình

Page 27: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

2727

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Sử dụng DataAdapter để ghi

•Sử dụng phương thức Update

•Trước khi Update thì các Insert Command, Update Command, Delete Command của DataAdapter phải khai báo các câu lệnh thích hợp

•Có thể sử dụng đối tượng SqlCommandBuilder để xây dựng tự động các Command này

Page 28: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

2828

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Sử dụng DataAdapter để cập nhật

•Phương thức Update

‘Cập nhật các thay đổi trên DataSet về cơ sở dữ liệubo_doc_ghi.Update(du_lieu);du_lieu.AcceptChanges();

‘Cập nhật các thay đổi trên DataTable về cơ sở dữ liệubo_doc_ghi.Update(bang);bang.AcceptChanges();

Page 29: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

2929

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Minh họa sử dụng DataAdapter để đọc và ghi dữ liệu

•Tạo một DataAdapter để đọc dữ liệu của một bảng

•Dữ liệu đọc được sẽ lưu trữ trong DataTable của DataSet (hoặc DataTable không thuộc DataSet)

•Hiển thị dữ liệu ra màn hình và cho phép cập nhật

•Xử lý nút Ghi về CSDL và nút Không ghi

Page 30: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

3030

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Minh họa sử dụng DataAdapter để đọc và ghi dữ liệu

•Tạo một DataAdapter để đọc dữ liệu của một bảng có cột khóa chính tự động tăng

•Hiển thị dữ liệu ra màn hình và cho cập nhật

•Xử lý khi ghi về CSDL

Page 31: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

3131

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

3. DataView là gì?

•Nếu DataTable được dùng lưu trữ dữ liệu thì DataView được dùng hiển thị dữ liệu

•DataView cho phép lọc và sắp xếp dữ liệu của DataTable

•Một DataTable có thể có nhiều DataView

•Một DataTable luôn có một Default View

Page 32: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

3232

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

What Are DataViews?

Page 33: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

3333

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Sử dụng DataView

•Khai báo và khởi tạo

‘Khai báo và khởi tạo DataViewDataView dv = new DataView(bang);

‘Tham chiếu đến DataView mặc địnhDataView dv = bang.DefaultView;

Page 34: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

3434

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Sử dụng DataView

•Để sắp xếp dữ liệu thuộc tính Sort

•Để lọc dữ liệu theo điều kiện thuộc tính RowFilter

•Để lọc dữ liệu theo trạng thái dòng thuộc tính RowStateFilter

•Để tìm kiếm phương thức Find và FindRows

Page 35: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

3535

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Minh họa sử dụng DataView

•Tạo một DataView và hiển thị ra màn hình

•Xử lý sắp xếp

•Xử lý lọc

•Xử lý tìm kiếm

Page 36: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

3636

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Thực hành 1

•Tạo DataSet và các DataTable

•Tạo DataSet và các DataTable cùng với DataRelation

Page 37: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

3737

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Thực hành 2

•Tạo DataAdapter

•Sử dụng DataAdapter để đọc dữ liệu

Page 38: Bài 5 : Lập trình thực thi các hoạt động xử lý theo cơ chế ngắt kết nối (Disconnected)

3838

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

http://www.facebook.com/groups/hoclaptrinhweb/

Thực hành 3

•Tạo DataAdapter

•Sử dụng DataAdapter để đọc và ghi dữ liệu