Sắp xếp, tìm kiếm, lọc trong DataTable Tìm 1 dòng Chọn một số dòng Cột tính toán Hàm nhóm trên cột... Sắp xếp, tìm kiếm, lọc trong DataTable DataTable: Dùng phương thức Find của
Trang 1SẮP XẾP, TÌM KIẾM,
LỌC DỮ LIỆU
Chương 4
Trang 2Nội dung
Sắp xếp, tìm kiếm, lọc trong DataTable
Lớp DataRelation
Lớp DataView
Trang 3Sắp xếp, tìm kiếm, lọc trong DataTable
Tìm 1 dòng
Chọn một số dòng
Cột tính toán
Hàm nhóm trên cột
Trang 4Sắp xếp, tìm kiếm, lọc trong DataTable
• Tìm thông tin chi tiết của hóa đơn có mã hóa
đơn cho trước
Trang 5Sắp xếp, tìm kiếm, lọc trong DataTable
DataTable: Dùng phương thức Find của
DataTable.Rows (đối tượng của lớp
DataRowCollection
Trang 6Sắp xếp, tìm kiếm, lọc trong DataTable
Tìm 1 dòng
Cú pháp phương thức Find
DataRow DataRowCollection Find( object key)
Chú ý
• Hàm Find tìm giá trị key chỉ trên cột khóa
chính table phải có khóa chính
• Để tạo khóa chính:
– Dùng DataSet có kiểu mạnh – Dùng hàm FillSchema
– Tự tạo khóa bằng code
Trang 7Sắp xếp, tìm kiếm, lọc trong DataTable
MessageBox Show("A row with the primary key of " +
s + " could not be found");
Trang 8Sắp xếp, tìm kiếm, lọc trong DataTable
MessageBox Show("A row with the primary key of " +
s + " could not be found");
Trang 9Sắp xếp, tìm kiếm, lọc trong DataTable
Chọn một số dòng
“Chọn một số dòng”: truy vấn 1 số dòng từ 1 bảng cho trước theo 1 điều kiện nào đó
Database: Thực thi câu lệnh SQL
Trang 10Sắp xếp, tìm kiếm, lọc trong DataTable
Chọn một số dòng
DataTable: Dùng phương thức Select của đối
tượng DataTable
DataRow [] rows = tenBang.Select();
DataRow [] rows = tenBang.Select( string dk);
DataRow [] rows = tenBang.Select( string dk, string sort);
DataRow [] rows = tenBang.Select( string dk, string sort,
DataRowState state);
DataRow [] rows = dt.Select("ho like '%Tr%'");
DataRow [] rows = dt.Select("ho like '%Tr%'“, “ten asc”);
Ví dụ
Trang 11Sắp xếp, tìm kiếm, lọc trong DataTable
Cột tính toán
“Cột tính toán”: là cột được sinh ra từ các
phép toán trên các cột khác
Database: Thực thi câu lệnh SQL
Select …, cot1 <pheptoan> cot2 … as TenCot , …
Trang 12Sắp xếp, tìm kiếm, lọc trong DataTable
DataColumn col = new DataColumn (“TenCot”);
col.Expression = “bieu thuc”;
Trang 13Sắp xếp, tìm kiếm, lọc trong DataTable
Cột tính toán
Chú ý
• Cột tính toán trên DataSet có kiểu làm tương tự
• Điều kiện rất quan trọng để cột tính toán có thể
hoạt động được là các cột tham gia vào biểu thức phải có kiểu tương ứng với phép toán (các cột
mặc định có kiểu string)
– Dùng DataSet có kiểu – Chỉ rõ kiểu bằng thuộc tính DataType của lớp
DataColumn
DataColumn col;
… col.DataType = typeof (kieu);
Trang 14Sắp xếp, tìm kiếm, lọc trong DataTable
Hàm nhóm trên cột
Database: Thực thi câu lệnh SQL
• Select min (…) From …
• Select max (…) From …
• Select avg (…) From …
• Select count (…) From …
• Select sum (…) From …
Select sum(price)
From Products;
Trang 15Sắp xếp, tìm kiếm, lọc trong DataTable
• “bộ lọc”: giống mệnh đề where
Trang 16Sắp xếp, tìm kiếm, lọc trong DataTable
• Dùng lớp Convert hay hàm Parse để chuyển
sang kiểu dữ liệu tương ứng
int p;
p = int Parse(table.Compute(“sum(Price)”, “Price<100”);
Trang 17Lớp DataRelation
Database
• Cho phép tạo quan hệ giữa các bảng
• Cho phép kết (join) giữa các bảng
DataTable:
• Cho phép tạo quan hệ giữa các bảng bằng đối
tượng DataRelation
• Không cho phép kết (join) giữa các bảng
• Cho phép lấy các “dòng con” của 1 dòng
• Cho phép lấy “dòng cha” của 1 dòng
Trang 18 Tạo quan hệ (Chương 5)
ds.Relations.Add( new DataRelation (…));
Trang 19Lớp DataView
Khái niệm DataView
Tạo DataView
Sắp xếp, tìm kiếm, lọc trong DataView
Chuyển DataView thành DataTable
Trang 20Lớp DataView
Khái niệm DataView
Đối tượng DataView thay thế cho câu lệnh
Select của đối tượng DataTable
Đặc điểm DataView
• DataView có thể binding vào control (Kết quả
của câu lệnh Select thì không thể)
• DataView chỉ cho phép làm việc trên 1 bảng –
không cho phép chọn 1 tập con các cột
• Nếu DataTable gồm có các DataRows thì
DataView gồm có các DataRowViews
Trang 21Lớp DataView
Tạo DataView
Các cách tạo DataView
DataView vw = new DataView ();
DataView vw = new DataView (table);
DataView vw = new DataView (table, “ĐKLoc”,
Trang 22Lớp DataView
Sắp xếp, tìm kiếm, lọc trong DataView
Thuộc tính của DataView
• RowFilter: Chỉ ra điều kiện lọc giống câu lệnh Select
Ví dụ: “Ho like ‘Tr%’”
• Sort: chỉ ra thứ tự sort Ví dụ: “MaSV asc”
Phương thức của DataView
• int Find(object): Trả về chỉ số dòng thỏa điều kiện tìm
kiếm
• DataRowView[] FindRows(object hay object[]): Trả về 1
số DataRowView thỏa điểu kiện tìm kiếm
• Chú ý: 2 Hàm này chỉ tìm kiếm trên các cột được chỉ ra
trong thuộc tính Sort của DataView
Trang 23Lớp DataView
Chuyển DataView sang DataTable
Cú pháp
DataTable vw.ToTable()
DataTable vw.ToTable("ten bang")
DataTable vw.ToTable(boolean, mảng chuỗi cột)
DataTable vw.ToTable("ten bang", boolean, mảng
chuỗi cột)
Trong đó
• boolean: true – loại bỏ những dòng trùng lắp
(distinct)