Bản thuyết trình đang được tải. Xin vui lòng chờ

Bản thuyết trình đang được tải. Xin vui lòng chờ

Chương 5 DataSets.

Các bản thuyết trình tương tự


Bản thuyết trình với chủ đề: "Chương 5 DataSets."— Bản ghi của bản thuyết trình:

1 Chương 5 DataSets

2 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

3 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

4 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

5 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

6 Lớp DataSet Sơ đồ lớp

7 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

8 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

9 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, …)

10 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);

11 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()

12 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

13 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

14 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

15 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

16 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

17 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();

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

19 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)

20 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

21 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)

22 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);

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

24 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)

25 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

26 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);

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

28 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.

29 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);

30 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

31 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);

32 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, …};

33 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

34 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.

35 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.

36 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

37 Gianh rieng de viet code

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

39 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);

40 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

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

42 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

43 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

44 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

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

46 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

47 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

48 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)

49 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();

50 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

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

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

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

54 Tóm tắt chương 5


Tải xuống ppt "Chương 5 DataSets."

Các bản thuyết trình tương tự


Quảng cáo bởi Google