SlideShare a Scribd company logo
DataSets
Chương 3
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
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
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
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");
 Cách 2: Dựa trên 1 đối tượng DataSet có sẵn
• Chú ý: Nếu không chỉ rõ tên của đối tượng
DataSet thì tên này sẽ là “NewDataSet”
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
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
 Thuộc tính
• 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
 Thuộc tính
• 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)
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;
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
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
35
Lớp DataRelation
Tạo đối tượng 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);
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);
37
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”]);
MessageBox.Show(tenDS.bangSV[0].MaSV);
• DataSet kiểu mạnh
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 3

More Related Content

PDF
Giáo trình phân tích thiết kế hệ thống thông tin
PDF
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...
PDF
Thiết kế csdl quản lý nhân sự
DOC
Phan tich thiet ke he thong thong tin
PDF
BÀI TẬP PHÂN TÍCH THIẾT KẾ HỆ THỐNG -Bộ môn Hệ thống thông tin
PDF
Phân tích và thiết kế hệ thống quản lý bán hàng
PDF
Baitap uml mau_thầy trung
DOCX
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Giáo trình phân tích thiết kế hệ thống thông tin
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...
Thiết kế csdl quản lý nhân sự
Phan tich thiet ke he thong thong tin
BÀI TẬP PHÂN TÍCH THIẾT KẾ HỆ THỐNG -Bộ môn Hệ thống thông tin
Phân tích và thiết kế hệ thống quản lý bán hàng
Baitap uml mau_thầy trung
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật

What's hot (20)

PDF
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
PDF
lý thuyết cơ sở dữ liệu phân tán
PPTX
Slide An toàn mạng nâng cao PTIT
DOCX
BÁO CÁO CÔNG NGHỆ PHẦN MỀM 8 điểm-QUẢN LÝ CỬA HÀNG BÁN MÁY ẢNH
DOCX
Báo cáo đồ án môn công nghệ phần mềm
PDF
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
PPTX
Anninhmang
PDF
Luận văn: Xác định các ca kiểm thử và dữ liệu kiểm thử, HAY
PPTX
Quản trị dự án công nghệ thông tin
PDF
Tìm hiểu MongoDB
PDF
Xây dựng cơ sở dữ liệu quản lý khách sạn
PDF
Thiết kế csdl quản lý nhân sự
DOC
Báo Cáo Bài Tập Lớn Môn Lập Trình Web Xây Dựng Website Tin Tức
DOC
Công nghệ phần mềm chuong 1
PPTX
HTTP POST DOS (Denial Of Service) (Demo tấn công DOS, phòng chống)
PPTX
Tổng quan về an toàn và bảo mật thông tin
PDF
Bài 8: Triển khai bảo mật sử dụng chính sách nhóm (Group policy) - Giáo trình...
PDF
Cơ sở dữ liệu PTIT slide 2
DOC
Đề tài: Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ t...
PPTX
SQL Injection
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
lý thuyết cơ sở dữ liệu phân tán
Slide An toàn mạng nâng cao PTIT
BÁO CÁO CÔNG NGHỆ PHẦN MỀM 8 điểm-QUẢN LÝ CỬA HÀNG BÁN MÁY ẢNH
Báo cáo đồ án môn công nghệ phần mềm
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
Anninhmang
Luận văn: Xác định các ca kiểm thử và dữ liệu kiểm thử, HAY
Quản trị dự án công nghệ thông tin
Tìm hiểu MongoDB
Xây dựng cơ sở dữ liệu quản lý khách sạn
Thiết kế csdl quản lý nhân sự
Báo Cáo Bài Tập Lớn Môn Lập Trình Web Xây Dựng Website Tin Tức
Công nghệ phần mềm chuong 1
HTTP POST DOS (Denial Of Service) (Demo tấn công DOS, phòng chống)
Tổng quan về an toàn và bảo mật thông tin
Bài 8: Triển khai bảo mật sử dụng chính sách nhóm (Group policy) - Giáo trình...
Cơ sở dữ liệu PTIT slide 2
Đề tài: Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ t...
SQL Injection
Ad

Similar to 03 chuong 3 - data sets (20)

PPT
Ung dung web chuong 6
PPT
ado.net
PPT
04 ado
PPT
Linq To Sql
PPT
01 chuong1-gioithieuado-140404114504-phpapp01
PDF
BÀI 6: THỰC THI CÁC HOẠT ĐỘNG XỬ LÝ THEO CƠ CHẾ NGẮT KẾT NỐI BẰNG CÁCH SỬ DỤ...
PPT
Chương 2, Hướng dẫn tạo Table trong Access
PPT
S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...
PPT
04 chuong 4 - sap xep, tim kiem, loc du lieu
PPT
04 chuong4-sapxeptimkiemlocdulieu-140404115538-phpapp01
DOCX
Trong bài viết hôm nay
PPT
Chuong 07_ gắng kết dữ liệu asp.net
DOCX
6.adapterset
PDF
Chuong 4-Thiet ke du lieu.pdf
PPT
01 chuong 1 - gioi thieu ado.net va ket noi den csdl
PDF
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 (Disc...
PDF
Ch5.thiet kedulieu
PPT
04 chuong 4 - cap nhat du lieu
PPTX
Data provider
PPT
02 chuong 2 - lay du lieu theo cach connected
Ung dung web chuong 6
ado.net
04 ado
Linq To Sql
01 chuong1-gioithieuado-140404114504-phpapp01
BÀI 6: THỰC THI CÁC HOẠT ĐỘNG XỬ LÝ THEO CƠ CHẾ NGẮT KẾT NỐI BẰNG CÁCH SỬ DỤ...
Chương 2, Hướng dẫn tạo Table trong Access
S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...
04 chuong 4 - sap xep, tim kiem, loc du lieu
04 chuong4-sapxeptimkiemlocdulieu-140404115538-phpapp01
Trong bài viết hôm nay
Chuong 07_ gắng kết dữ liệu asp.net
6.adapterset
Chuong 4-Thiet ke du lieu.pdf
01 chuong 1 - gioi thieu ado.net va ket noi den csdl
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 (Disc...
Ch5.thiet kedulieu
04 chuong 4 - cap nhat du lieu
Data provider
02 chuong 2 - lay du lieu theo cach connected
Ad

More from truong le hung (10)

PDF
các bước hack server
PDF
Stored procedure
PPTX
lập trình di động
PPTX
Lập trình android
PPT
bài giảng phân tích thiết kệ thống thông tin (hutech)
DOCX
Cach su dung databinding
DOCX
Thuc thi menh lenh voi co so du lieu
DOCX
Tao mot ket noi toi co so du lieu dung c#
PPT
04 chuong 4 - databinding
PPT
04 chuong 4 - cap nhat du lieu
các bước hack server
Stored procedure
lập trình di động
Lập trình android
bài giảng phân tích thiết kệ thống thông tin (hutech)
Cach su dung databinding
Thuc thi menh lenh voi co so du lieu
Tao mot ket noi toi co so du lieu dung c#
04 chuong 4 - databinding
04 chuong 4 - cap nhat du lieu

Recently uploaded (20)

PPTX
Chương 1 – Tổng quan về Cơ sở dữ liệu.pptx
DOCX
BÀI TIỂU LUẬN HẾT HỌC PHẦN MÔN ĐÁNH GIÁ TRONG GIÁO DỤC
DOCX
Luận văn group-Bài tiểu luận Ý thức - Giấc mơ.docx
PDF
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
PPTX
Tốc độ và vận tốc trong chuyển động thẳng
PPTX
TIẾT 8, 9, 10. BÀI 32. DINH DƯỠNG VÀ TIÊU HÓA Ở NGƯỜI.pptx
PDF
Quyền-biểu-tình-của-công-dân-theo-hiến-pháp-Việt-Nam.pdf
PDF
Public economy và vai trò trong phân bổ nguồn lực, cung cấp hàng hóa công, đi...
PDF
[Toán 10] - Bộ 5 Đề Ôn Tập học Kì 2.pdf cho học sinh lớp 10
PPTX
Bài 9.4 TUYẾN SINH DỤC NAM VÀ NU CẤU TẠO VÀ CHỨC NĂNG
DOCX
Báo cáo thực tập công ty Ah-GlobalGroup vị trí Data Analyst
PPTX
Bài giảng chương 3 phương pháp luận nghiên cứu khoa học_HQH.pptx
DOCX
BÀI TIỂU LUẬN HẾT HỌC PHẦN TỔ CHỨC HOẠT ĐỘNG TRẢI NGHIỆM,HƯỚNG NGHIỆP Ở TRƯỜN...
PDF
BÀI TẬP TEST BỔ TRỢ THEO TỪNG UNIT - TIẾNG ANH 10 GLOBAL SUCCESS - CẢ NĂM (30...
PPTX
SLIDE BV CHÍNH THỨC LATSKH - note.pptx
PDF
BÀI TẬP BỔ TRỢ FRIENDS PLUS 9 - BÀI TẬP TRẮC NGHIỆM, TỰ LUẬN - CẢ NĂM (BÁM SÁ...
PDF
Quản trị sự kiện........................
DOC
TẦM QUAN TRỌNG CỦA VIỆC TUÂN THỦ CÁC QUY TẮC AN TOÀN GIAO THÔNG ĐƯỜNG BỘ
PDF
BÀI TẬP TEST FOR UNIT TIẾNG ANH LỚP 8 GLOBAL SUCCESS CẢ NĂM THEO TỪNG ĐƠN VỊ ...
PDF
CHƯƠNG 1-P2: ĐẢNG CỘNG SẢN VIỆT NAM RA ĐỜI VÀ LÃNH ĐẠO ĐẤU TRANH GIÀNH CHÍNH ...
Chương 1 – Tổng quan về Cơ sở dữ liệu.pptx
BÀI TIỂU LUẬN HẾT HỌC PHẦN MÔN ĐÁNH GIÁ TRONG GIÁO DỤC
Luận văn group-Bài tiểu luận Ý thức - Giấc mơ.docx
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
Tốc độ và vận tốc trong chuyển động thẳng
TIẾT 8, 9, 10. BÀI 32. DINH DƯỠNG VÀ TIÊU HÓA Ở NGƯỜI.pptx
Quyền-biểu-tình-của-công-dân-theo-hiến-pháp-Việt-Nam.pdf
Public economy và vai trò trong phân bổ nguồn lực, cung cấp hàng hóa công, đi...
[Toán 10] - Bộ 5 Đề Ôn Tập học Kì 2.pdf cho học sinh lớp 10
Bài 9.4 TUYẾN SINH DỤC NAM VÀ NU CẤU TẠO VÀ CHỨC NĂNG
Báo cáo thực tập công ty Ah-GlobalGroup vị trí Data Analyst
Bài giảng chương 3 phương pháp luận nghiên cứu khoa học_HQH.pptx
BÀI TIỂU LUẬN HẾT HỌC PHẦN TỔ CHỨC HOẠT ĐỘNG TRẢI NGHIỆM,HƯỚNG NGHIỆP Ở TRƯỜN...
BÀI TẬP TEST BỔ TRỢ THEO TỪNG UNIT - TIẾNG ANH 10 GLOBAL SUCCESS - CẢ NĂM (30...
SLIDE BV CHÍNH THỨC LATSKH - note.pptx
BÀI TẬP BỔ TRỢ FRIENDS PLUS 9 - BÀI TẬP TRẮC NGHIỆM, TỰ LUẬN - CẢ NĂM (BÁM SÁ...
Quản trị sự kiện........................
TẦM QUAN TRỌNG CỦA VIỆC TUÂN THỦ CÁC QUY TẮC AN TOÀN GIAO THÔNG ĐƯỜNG BỘ
BÀI TẬP TEST FOR UNIT TIẾNG ANH LỚP 8 GLOBAL SUCCESS CẢ NĂM THEO TỪNG ĐƠN VỊ ...
CHƯƠNG 1-P2: ĐẢNG CỘNG SẢN VIỆT NAM RA ĐỜI VÀ LÃNH ĐẠO ĐẤU TRANH GIÀNH CHÍNH ...

03 chuong 3 - data sets

  • 2. 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. 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
  • 4. 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. 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
  • 7. 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
  • 8. 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
  • 9. 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. 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");  Cách 2: Dựa trên 1 đối tượng DataSet có sẵn • Chú ý: Nếu không chỉ rõ tên của đối tượng DataSet thì tên này sẽ là “NewDataSet” DataSet ds1; … DataSet ds2 = ds1.Clone(); DataSet ds3 = ds1.Copy(); DataSet ds4 = ds1.GetChanges(); DataSet ds5 = ds1.GetChanges(DataRowState.Added);
  • 11. 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. 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. 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
  • 14. 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. 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. 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. 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. 18 Lớp DataTable Thêm đối tượng DataTable vào DataSet tenDS.Tables.Add(tenBang);
  • 19. 19 Lớp DataTable Một số thuộc tính/phương thức trong DataTable  Thuộc tính • string TableName  Phương thức • void Clear() • void AcceptChanges() • void RejectChanges() • DataRow[] Select() • DataRow[] Select(string filterExp)
  • 20. 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. 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. 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. 23 Lớp DataColumn Thêm đối tượng DataColumn vào DataTable tenTable.Columns.Add(tenColumn);
  • 24. 24 Lớp DataColumn Một số thuộc tính/phương thức trong DataColumn  Thuộc tính • 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. 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. 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. 27 Constraints  Khái niệm và phân loại  ForeignKeyConstraint  UniqueConstraint
  • 28. 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. 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) ForeignKeyConstraint fk = new ForeignKeyConstraint(“tenFK”, parentCol, childCol); tenBang.Constraints.Add(fk);
  • 30. 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;
  • 31. 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 UniqueConstraint uc = new UniqueConstraint(DataColumn col); UniqueConstraint uc = new UniqueConstraint(DataColumn[] col); tenBang.Constraints.Add(uc);
  • 32. 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. 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. 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
  • 35. 35 Lớp DataRelation Tạo đối tượng 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);
  • 36. 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);
  • 37. 37
  • 38. 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. 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”]); MessageBox.Show(tenDS.bangSV[0].MaSV); • DataSet kiểu mạnh
  • 40. 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. 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. 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. 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. 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. 45 DataSet kiểu mạnh Tạo DataSet kiểu mạnh
  • 46. 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. 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. 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. 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. 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. 51 Một số đoạn mã Duyệt qua các bảng trong DataSet
  • 52. 52 Một số đoạn mã Duyệt qua các dòng trong DataTable
  • 53. 53 Một số đoạn mã Duyệt qua các cột trong DataTable

Editor's Notes

  • #4: Chỉ có 1 loại DataSet không có SqlDataSet, OleDbDataset Gồm 1 tập bảng
  • #8: Tables Collection hay Tables Property
  • #9: Tables luu 1 tap cac bảng
  • #11: 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
  • #14: DataTable có thề là kết quả của một phép kết một số bảng trong CSDL
  • #30: 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.
  • #31: 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
  • #32: 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.
  • #35: 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: 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.
  • #37: Nếu nhập vi phạm ngoại lệ sẽ phát sinh ngoại lệ InvalidConstraintException
  • #38: Gianh rieng de viet code
  • #40: 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