Tải bản đầy đủ (.pptx) (86 trang)

Bài giảng Lập trình trên Windows: Chương 5.2 - Trần Minh Thái

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (678.36 KB, 86 trang )

Lập trình Windows
Chương 5.2. Lấy dữ liệu theo cách Disconnected

1


Nội dung

• Khái niệm DataSet
• Khái niệm DataAdapter
• Lớp DataAdapter
• Truy vấn 1 bảng
• Truy vấn nhiều bảng
• Truy vấn lược đồ CSDL
• Ánh xạ - Mapping

2


Khái niệm DataSet

• 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

9


Lớp DataSet
3 thuộc tính quan trọng trong DataSet
• 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

10


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

11


Lớp DataSet

Tạo đối tượng DataSet
• Cách 1: Dùng constructor
DataSet ds = new DataSet();
DataSet ds = new DataSet("TenDataSet");

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

DataSet

DataSet
DataSet
DataSet
DataSet

ds1;
ds2
ds3
ds4
ds5

=
=
=
=


ds1.Clone();
ds1.Copy();
ds1.GetChanges();
ds1.GetChanges(DataRowState.Added);
12


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

13


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

14


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

15


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

16



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
17


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

18


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


Lớp DataTable
Thêm đối tượng DataTable vào DataSet

tenDS.Tables.Add(tenBang);

20


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)

21


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

22


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)

23


Lớp DataColumn
Tạo đối tượng DataColumn
• Cách 1: Constructor
DataColumn
DataColumn
DataColumn
DataColumn

col
col
col
col

=
=
=
=

new
new
new
new

DataColumn();
DataColumn(“tenCot”);

DataColumn(“tenCot”, typeof(kieu));
DataColumn(“tenCot”, typeof(kieu), expr);

 Cách 2: Vừa tạo cột vừa thêm vào bảng
DataColumn
DataColumn
DataColumn
DataColumn

col
col
col
col

=
=
=
=

tenBang.Columns.Add();
tenBang.Columns.Add(“tenCot”);
tenBang.Columns.Add(“tenCot”, typeof(kieu));
tenBang.Columns.Add(“tenCot”, typeof(kieu), expr);

24


Lớp DataColumn
Thêm đối tượng DataColumn vào DataTable


tenTable.Columns.Add(tenColumn);

25


×