Chương 5 DataSets.

Slides:



Advertisements
Các bản thuyết trình tương tự
TRANG COVER Viết tiêu đề Ebook vào chỗ này…
Advertisements

Công nghệ phần mềm Các quy trình phần mềm.
B5. Viết báo cáo NCKHSPƯD Kết quả nghiên cứu sẽ
CHÚA NHẬT 33 MÙA THƯỜNG NIÊN NĂM B
TINH THẦN YÊU NƯỚC CỦA NHÂN DÂN TA
LỄ ĐỨC MARIA LÀ MẸ THIÊN CHÚA
Các nguyên tắc làm việc với ASP
Lễ Chúa Giêsu Lên Trời Năm C
Tiêu đề Mẫu Powerpoint Thêm tiêu đề L.O.G.O.
PHÒNG TÀI NGUYÊN VÀ MÔI TRƯỜNG CÁC CÔNG TÁC BẢO VỆ MÔI TRƯỜNG
Hệ điều hành Windows Sever 2003
ThS. Phạm Đức Thành Lập trình trên Windows ThS. Phạm Đức Thành
CHÚA NHẬT 29 MÙA THƯỜNG NIÊN
“Khi Chúa Giêsu đã chịu phép rửa và đang cầu nguyện, thì trời mở ra”.
BIDV Czech Rep. Representative Office
Hướng dẫn lập trình trên
CHALLENGES & OPPORTUNITIES
Kiểm thử và đảm bảo chất lượng phần mềm
Hùng Phương & Thanh Quảng thực hiện
Chương 3 Exception.
LỄ CHÚA THÁNH THẦN HIỆN XUỐNG
TWENTY-FIFTH SUNDAY IN ORDINARY TIME
Chúa Nhật 13 Thường Niên Năm C Hùng Phương & Thanh Quảng thực hiện
Thực hành 5S trong văn phòng
Chương 3 – Các kỹ thuật gỡ lỗi và kiểm thử chương trình
Chương 7 INTERFACE.
THE HOLY FAMILY OF JESUS, MARY AND JOSEPH
Hướng dẫn sử dụng Tôn Nữ Phương Mai Tháng 3/2013.
Hướng dẫn sử dụng hệ thống họp trực tuyến của Bộ GD&ĐT
Ôn tập struct và bộ nhớ động Linked Lists
Lương Trần Hy Hiến - LINQ to SQL Lương Trần Hy Hiến -
Class & Struct II Lập trình nâng cao.
Con trỏ Lập trình nâng cao
Bài 3: Ngôn ngữ lập trình C#
Chương 5 ỨNG DỤNG CSDL VÀ ADO.NET.
THIRD SUNDAY OF LENT CHÚA NHẬT 3 MÙA CHAY NĂM C.
Chương 06 KIỂU DỮ LIỆU NGƯỜI LẬP TRÌNH ĐỊNH NGHĨA
Hiểu Biết về Kết Quả SBAC CAASPP – California Assessment of Student Performance and Progress (Đánh Giá của California về Thành Quả và Tiến.
CHÚA NHẬT 5 MÙA THƯỜNG NIÊN
17th Sunday in Ordinary Time - Year C Chúa Nhật 17 Thường Niên Năm C
THE NATIVITY OF THE LORD CHRISTMAS
YÊU CẦU ĐẶT RA Tôi có một số đoạn phim / hình ảnh (vừa quay / chụp được hoặc sưu tầm được,…), tôi muốn lắp ghép nó để trở thành một đoạn phim trình.
Tác giả: Đa-vít Bát-ti By Dave Batty
Maria thì ghi nhớ tất cả những việc đó và suy niệm trong lòng
PALM SUNDAY OF THE LORD’S PASSION
Chương 03 TỔ CHỨC DỮ LIỆU TRONG CHƯƠNG TRÌNH
Tin Mừng Chúa Giêsu Kitô theo Thánh Matthêu.
Chuyên đề : Web Design Bộ môn KTMT – Viện CNTT&TT
NHẬP MÔN LẬP TRÌNH MẢNG MỘT CHIỀU.
Môn Toán Lớp 3 Giáo viên: Nguyễn Thị B 1.
Trainer: Bạch Ngọc Toàn Phát hành bởi: TEDU –
SẮP XẾP, TÌM KIẾM, LỌC DỮ LIỆU
MÔN HỌC: NHẬP MÔN VỄ KỸ THUẬT CHƯƠNG 7: KỸ NĂNG GIẢI QUYẾT VẤN ĐỀ
CHÚA NHẬT LỄ LÁ NĂM C PALM SUNDAY
Nhập môn Công nghệ học Phần mềm Introduction to Software Engineering
Trainer: Bạch Ngọc Toàn Phát hành bởi: TEDU –
"Đang khi cầu nguyện, diện mạo Người biến đổi khác thường".
Wireless Communications Principles and Practice
TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN
Mục tiêu Ưu điểm của ADO.NET Kiến trúc của ADO.NET
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 2012
CHÚA NHẬT 13 MÙA THƯỜNG NIÊN THIRTEENTH SUNDAY IN ORDINARY TIME
HƯỚNG DẪN TẠO LỚP.
KIỂM TRA TÌNH TRẠNG SAO CHÉP
Nhịp & Phách (Time and Beat).
CHÚA NHẬT 3 MÙA VỌNG. C "Còn chúng tôi, chúng tôi phải làm gì?"
Hàm Lập trình nâng cao.
Bản ghi của bản thuyết trình:

Chương 5 DataSets

Nội dung Khái niệm DataSet Lớp DataSet Lớp DataTable Lớp DataColumn Lớp DataRow Constraints Primary key Lớp DataRelation DataSet kiểu mạnh

Khái niệm DataSet DataSet là gì DataSet là một đối tượng cho phép Nạp 1 phần dữ liệu của data source lên bộ nhớ Lưu trữ dữ liệu theo mô hình quan hệ DataSet thuộc kiến trúc Disconnected DataSet không phụ thuộc vào loại data source Chỉ có 1 loại DataSet không có SqlDataSet, OleDbDataset Gồm 1 tập bảng

Khái niệm DataSet Cấu trúc cơ bản của lớp DataSet Gồm 1 tập các bảng – DataTable Gồm 1 tập các quan hệ – DataRelation DataSet DataTable DataTable DataRelation

Lớp DataSet Sơ đồ lớp 3 thuộc tính quan trọng trong DataSet Tạo đối tượng DataSet Một số thuộc tính/phương thức trong DataSet

Lớp DataSet Sơ đồ lớp

Lớp DataSet 3 thuộc tính quan trọng trong DataSet Lớp DataSet có 3 collection properties quan trọng Tables Relations ExtendedProperties Tables Collection hay Tables Property

Lớp DataSet 3 thuộc tính quan trọng trong DataSet Tables property Là đối tượng của lớp DataTableCollection, có thể chứa 0 hay nhiều đối tượng DataTable Đối tượng DataTable dùng để lưu trữ 1 tập dữ liệu dạng bảng được trích ra từ Data Source Relations property Là đối tượng của lớp DataRelationCollection, có thể chứa 0 hay nhiều đối tượng DataRelation Đối tượng DataRelation định nghĩa mối quan hệ cha-con giữa 2 bảng dựa vào khóa ngoại Tables luu 1 tap cac bảng

Lớp DataSet 3 thuộc tính quan trọng trong DataSet ExtendedProperties property Là đối tượng của lớp PropertyCollection, có thể chứa 0 hay nhiều đối tượng thuộc tính do người dùng tự định nghĩa Thường được dùng để lưu các dữ liệu kèm theo DataSet (vd thời gian DataSet được tạo, …)

Lớp DataSet Tạo đối tượng DataSet Cách 1: Dùng constructor DataSet ds = new DataSet(); DataSet ds = new DataSet("TenDataSet"); Chú ý: Nếu không chỉ rõ tên của đối tượng DataSet thì tên này sẽ là “NewDataSet” Cách 2: Dựa trên 1 đối tượng DataSet có sẵn To create a copy of a DataSet that only includes schema, use the Clone method of the DataSet To create an exact copy of the DataSet that includes both schema and data, use the Copy method of the DataSet. To create a copy of a DataSet that includes schema and only the data representing Added, Modified, or Deleted rows, use the GetChanges method of the DataSet DataSet ds1; … DataSet ds2 = ds1.Clone(); DataSet ds3 = ds1.Copy(); DataSet ds4 = ds1.GetChanges(); DataSet ds5 = ds1.GetChanges(DataRowState.Added);

Lớp DataSet Một số thuộc tính/phương thức trong DataSet Properties DataSetName Method void Clear() void AcceptChanges() bool HasChanges() bool HasChanges(DataRowState rowStates) void RejectChanges()

Lớp DataTable Khái niệm DataTable 3 thuộc tính quan trọng trong DataTable Tạo đối tượng DataTable Thêm đối tượng DataTable vào đối tượng DataSet Một số thuộc tính/phương thức trong DataTable

Lớp DataTable Khái niệm DataTable DataTable dùng để lưu trữ 1 tập dữ liệu dạng bảng được trích ra từ Data Source Đặc điểm của DataTable Là trung tâm của kiến trúc ADO.NET Có thể dùng độc lập với DataSet DataTable có thề là kết quả của một phép kết một số bảng trong CSDL

Lớp DataTable 3 thuộc tính quan trọng trong DataTable Lớp DataTable có 3 collection properties quan trọng Columns Constraints Rows Cấu trúc của Table

Lớp DataTable 3 thuộc tính quan trọng trong DataTable Columns property Là đối tượng của lớp DataColumnCollection, có thể chứa 0 hay nhiều đối tượng DataColumn Đối tượng DataColumn dùng để định nghĩa các thuộc tính của mỗi cột của bảng (tên cột, kiểu dữ liệu lưu trữ, khóa chính, seed, step) Rows property Là đối tượng của lớp DataRowCollection, có thể chứa 0 hay nhiều đối tượng DataRow Đối tượng DataRow chứa dữ liệu thực sự trong DataTable

Lớp DataTable 3 thuộc tính quan trọng trong DataTable Constraints property Là đối tượng của lớp ConstraintCollection, có thể chứa 0 hay nhiều đối tượng ForeignKeyConstraint và/hay UniqueConstraint

Lớp DataTable Tạo đối tượng DataTable Cách 1: Dùng Constructor DataTable table = new DataTable(); DataTable table = new DataTable("TenBang"); Cách 2: Vừa tạo bảng vừa thêm vào DataSet DataTable table = tenDS.Tables.Add(); DataTable table = tenDS.Tables.Add("TenBang"); Cách 3: Dựa trên 1 đối tượng DataTable có sẵn DataTable table = tenTable.Clone(); DataTable table = tenTable.Copy();

Lớp DataTable Thêm đối tượng DataTable vào DataSet tenDS.Tables.Add(tenBang);

Lớp DataTable Một số thuộc tính/phương thức trong DataTable string TableName Phương thức void Clear() void AcceptChanges() void RejectChanges() DataRow[] Select() DataRow[] Select(string filterExp)

Lớp DataColumn Khái niệm DataColumn Tạo đối tượng DataColumn Thêm đối tượng DataColumn vào DataTable Một số thuộc tính/phương thức trong DataColumn

Lớp DataColumn Khái niệm DataColumn DataColumn dùng để định nghĩa các thuộc tính của mỗi cột của bảng (tên cột, kiểu dữ liệu lưu trữ, khóa chính, seed, step) DataColumn tạo nên cấu trúc của bảng (lược đồ của bảng – schema)

Lớp DataColumn Tạo đối tượng DataColumn Cách 1: Constructor DataColumn col = new DataColumn(); DataColumn col = new DataColumn(“tenCot”); DataColumn col = new DataColumn(“tenCot”, typeof(kieu)); DataColumn col = new DataColumn(“tenCot”, typeof(kieu), expr); Cách 2: Vừa tạo cột vừa thêm vào bảng DataColumn col = tenBang.Columns.Add(); DataColumn col = tenBang.Columns.Add(“tenCot”); DataColumn col = tenBang.Columns.Add(“tenCot”, typeof(kieu)); DataColumn col = tenBang.Columns.Add(“tenCot”, typeof(kieu), expr);

Lớp DataColumn Thêm đối tượng DataColumn vào DataTable tenTable.Columns.Add(tenColumn);

Lớp DataColumn Một số thuộc tính/phương thức trong DataColumn bool AllowDBNull bool AutoIncrement long AutoIncrementSeed long AutoIncrementStep string Caption string ColumnName Type DataType object DefaultValue string Expression string MaxLength bool ReadOnly bool Unique int Ordinal Phương thức void SetOrdinal(int ordinal)

Lớp DataRow Khi DataTable đã được xây dựng và các DataColumn đã được định nghĩa chúng ta có thể thêm dữ liệu vào bảng Thêm dữ liệu vào bảng: Thêm đối tượng DataRow vào DataTable.Rows collection

Lớp DataRow Các bước thêm dữ liệu vào DataTable B1: DataRow row=tenBang.NewRow(); B2: Thiết lập các giá trị cho đối tượng row row[“tenCot”] = giatri row[index] = giatri row[dataColObject] = giatri B3: tenBang.Rows.Add(row);

Constraints Khái niệm và phân loại ForeignKeyConstraint UniqueConstraint

Constraints Khái niệm và phân loại Khái niệm Constraints Là những quy tắc (rules) áp dụng cho một cột hay các cột để xác định hành động khi dữ liệu của cột đó bị thay đổi Phân loại constraints ForeignKeyConstraint UniqueConstraint.

Constraints ForeignKeyConstraint ForeignKeyConstraint dùng để Ràng buộc tham chiếu Định nghĩa hành vi cascade (khi giá trị trong cột của bảng cha bị thay đổi hay xóa thì ForeignKeyConstraint sẽ định nghĩa bảng con phản ứng như thế nào) A ForeignKeyConstraint is intended for use in enforcing referential integrity. In addition, you can define cascade behavior: When a value in a column in a parent table is changed or deleted, a ForeignKeyConstraint defines how the child table should react. For example, if a parent record is deleted, you could specify that all child records should be deleted too—or you could set the related field in the child records to null or default values, explicitly identifying orphaned records. This is known as a cascading action, because an action on the parent has consequences that travel down to affect the child as well. ForeignKeyConstraint fk = new ForeignKeyConstraint(“tenFK”, parentCol, childCol); tenBang.Constraints.Add(fk);

Constraints ForeignKeyConstraint Định nghĩa hành vi cascade DeleteRule UpdateRule fk.DeleteRule = Rule.Cascade; // default fk.DeleteRule = Rule.SetNull; fk.DeleteRule = Rule.SetDefault; fk.DeleteRule = Rule.None; The action to be taken on the child is defined in the ForeignKeyConstraint.DeleteRule and/or the ForeignKeyConstraint.UpdateRule property, and can be set to one of four possible System.Data.Rule enumerators, as shown in Table 6-3

Constraints UniqueConstraint UniqueConstraint dùng để Định nghĩa giá trị không được trùng trên 1 cột hay nhiều cột (giá trị duy nhất) ConstraintException Nếu nhập giá trị vi phạm ràng buộc thì chương trình sẽ ném ra ngoại lệ ConstraintException A ForeignKeyConstraint is intended for use in enforcing referential integrity. In addition, you can define cascade behavior: When a value in a column in a parent table is changed or deleted, a ForeignKeyConstraint defines how the child table should react. For example, if a parent record is deleted, you could specify that all child records should be deleted too—or you could set the related field in the child records to null or default values, explicitly identifying orphaned records. This is known as a cascading action, because an action on the parent has consequences that travel down to affect the child as well. UniqueConstraint uc = new UniqueConstraint(DataColumn col); UniqueConstraint uc = new UniqueConstraint(DataColumn[] col); tenBang.Constraints.Add(uc);

Primary key Khóa chính trong DataTable Khóa chính trong DataTable là một mảng các DataColumn được dùng để xác định 1 DataRow duy nhất trong DataTable tenTable.PrimaryKey = new DataColumn[]{col1, col2, …};

Lớp DataRelation Khái niệm và chức năng của DataRelation Tạo đối tượng DataRelation Thêm đối tượng DataRelation vào DataSet Truy cập các dòng dữ liệu có liên quan

Lớp DataRelation Khái niệm và chức năng của DataRelation Khái niệm DataRelation DataRelation dùng để thiết lập mối quan hệ giữa bảng cha (parent – master) và bảng con (child – detail) dựa trên khóa chung 2 chức năng của DataRelation Tìm kiếm những dòng dữ liệu liên quan đến dòng dữ liệu đang xử lý Thực hiện ràng buộc tham chiếu The DataRelation object can perform two functions: It can make available the records related to a record you are working with. It provides child records if you are in a parent record, and a parent record if you are working with a child record. It can enforce constraints for referential integrity, such as deleting related child records when you delete a parent record.

Lớp DataRelation Tạo đối tượng DataRelation DataRelation r = new DataRelation(“ten”, DataColumn parentCol, DataColumn childCol); DataRelation r = new DataRelation(“ten”, DataColumn[] parentCol, DataColumn[] childCol); The DataRelation object can perform two functions: It can make available the records related to a record you are working with. It provides child records if you are in a parent record, and a parent record if you are working with a child record. It can enforce constraints for referential integrity, such as deleting related child records when you delete a parent record.

Lớp DataRelation Truy cập các dòng dữ liệu có liên quan Thêm đối tượng DataRelation vào DataSet DataRelation r; … ds.Relations.Add(r); Truy cập các dòng dữ liệu liên quan DataRow[] rows; DataRow row; rows = parentTable.Rows[index].GetChildRows(relation); row = childTable.Rows[index].GetParentRow(relation); Nếu nhập vi phạm ngoại lệ sẽ phát sinh ngoại lệ InvalidConstraintException

Gianh rieng de viet code

DataSet kiểu mạnh Giới thiệu DataSet kiểu mạnh Tạo DataSet kiểu mạnh Sử dụng

DataSet kiểu mạnh Giới thiệu DataSet kiểu mạnh So sánh 2 đoạn mã DataSet kiểu yếu row = tenDS.Tables[“bangSV”].Rows[0]; MessageBox.Show(row[“MaSV”]); DataSet kiểu mạnh Nhan xet Viết ngắn gọn hơn Không còn chuỗi Truy cap bang thong qua property Truy cap cot chua dữ liệu thong qua property MessageBox.Show(tenDS.bangSV[0].MaSV);

DataSet kiểu mạnh Tạo DataSet kiểu mạnh B1: Tạo DataSet Click phải chuột lên tên Project  Add  New Item: Chọn DataSet

DataSet kiểu mạnh Tạo DataSet kiểu mạnh B2: Tạo bảng Kéo DataTable vào Designer

DataSet kiểu mạnh Tạo DataSet kiểu mạnh B3: Tạo cột Click phải lên bảng trong designer  Add  Column

DataSet kiểu mạnh Tạo DataSet kiểu mạnh B4: Tạo khóa chính Chọn các cột  Click phải lên cột  Set Primary Key

DataSet kiểu mạnh Tạo DataSet kiểu mạnh B5: Thiết lập quan hệ Kéo Relation từ toolbox vào Designer

DataSet kiểu mạnh Tạo DataSet kiểu mạnh

DataSet kiểu mạnh Sử dụng Các lớp dữ liệu được tạo ra trong lớp DataSet XLXeDataSet.NhanVienDataTable XLXeDataSet.XeDataTable XLXeDataSet.PhanCongDataTable XLXeDataSet.NhanVienRow XLXeDataSet.XeRow XLXeDataSet.PhanCongRow

DataSet kiểu mạnh Sử dụng Truy cập các đối tượng bảng thông qua property XLXeDataSet ds = new XLXeDataSet(); ds.Xe ds.NhanVien ds.PhanCong

DataSet kiểu mạnh Sử dụng Truy cập các đối tượng dòng thông qua property ds.Xe[int index] hay ds.Xe.Rows[int index] ds.NhanVien[int index] hay ds.NhanVien.Rows[int index] ds.PhanCong[index] hay ds.PhanCong.Rows[int index] Thêm/Xoa đối tượng dòng: Phương thức Add/Remove ds.Xe.AddXeRow(XeRow row) ds.Xe.AddNhanVienRow(NhanVienRow row) ds.Xe.AddPhanCongRow(PhanCongRow row)

DataSet kiểu mạnh Sử dụng Truy cập các giá trị thông qua property ds.NhanVien[i].MaNV ds.NhanVien[i].Ho ds.NhanVien[i].Ten ds.NhanVien[i].NgayVaoLam Lấy những dòng có liên quan DataRow[] rows = ds.NhanVien[i].GetChildRows(); DataRow row = ds.NhanVien[i].GetParentRow();

Một số đoạn mã Duyệt qua các bảng trong DataSet Duyệt qua các dòng trong DataTable Duyệt qua các cột trong DataTable

Một số đoạn mã Duyệt qua các bảng trong DataSet

Một số đoạn mã Duyệt qua các dòng trong DataTable

Một số đoạn mã Duyệt qua các cột trong DataTable

Tóm tắt chương 5