intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Cao Thi Ly | Ngày: | Loại File: PPTX | Số trang:25

71
lượt xem
7
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Lập trình trên Windows: Chương 5.3 Sắp xếp, tìm kiếm và lọc dữ liệu cung cấp cho người học các kiến thức: Sắp xếp, tìm kiếm, lọc trong DataTable, lớp DataRelation, lớp DataView. Mời các bạn cùng tham khảo.

Chủ đề:
Lưu

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

  1. Lập trình Windows Chương 5.3. Sắp xếp, tìm kiếm và lọc dữ liệu 1
  2. Nội dung • Sắp xếp, tìm kiếm, lọc trong DataTable • Lớp DataRelation • Lớp DataView 2
  3. 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 3
  4. Sắp xếp, tìm kiếm, lọc trong DataTable Tìm 1 dòng • “Tìm 1 dòng”: Là lấy thông tin chi tiết của 1 ID hay khóa chính nào đó • Ví dụ: • Tìm thông tin chi tiết của một khách hàng có mã khách hàng cho trước • Tìm thông tin chi tiết của hóa đơn có mã hóa đơn cho trước 4
  5. Sắp xếp, tìm kiếm, lọc trong DataTable Tìm 1 dòng • Database: Thực thi câu lệnh SQL Select … From tenBang Where CotKhoaChinh=giatri • DataTable: Dùng phương thức Find của  DataTable.Rows (đối tượng của lớp  DataRowCollection 5
  6. Sắp xếp, tìm kiếm, lọc trong DataTable Tìm 1 dòng 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 6
  7. Sắp xếp, tìm kiếm, lọc trong DataTable Tìm 1 dòng • Ví dụ myTable.PrimaryKey = new DataColumn[] { myTable.Columns["CustomerID"] }; string s = "primaryKeyValue"; DataRow foundRow = myTable.Rows.Find(s); if (foundRow != null) MessageBox.Show(foundRow[1].ToString()); else MessageBox.Show("A row with the primary key of " + s + " could not be found"); 7
  8. Sắp xếp, tìm kiếm, lọc trong DataTable Tìm 1 dòng • DataSet kiểu mạnh: Cung cấp sẵn phương thức FindBy(...) NhanVienDataTable nv; … string s = "primaryKeyValue"; NhanVienRow foundRow = nv.FindByMaNV(s); if (foundRow != null) MessageBox.Show(foundRow.MaNV); else MessageBox.Show("A row with the primary key of " + s + " could not be found"); 8
  9. Sắ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 Select … From tenBang Where tenCot=giatri §Ví dụ: Select * From NhanVien Where Ten like ‘Ta%’ 9
  10. Sắ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); §Ví dụ DataRow[] rows = dt.Select("ho like '%Tr%'"); DataRow[] rows = dt.Select("ho like '%Tr%'“, “ten asc”); 10
  11. Sắ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 cot2 … as TenCot, … From tenBang … §Ví dụ Select ProductID,Price,Tax,(Price+Price*Tax) as TotalPrice From Products 11
  12. Sắp xếp, tìm kiếm, lọc trong DataTable Cột tính toán • DataTable: Chỉ ra expression cho cột mới DataTable table; … DataColumn col = new DataColumn(“TenCot”); col.Expression = “bieu thuc”; table.Columns.Add(col); § Ví dụ DataColumn totalPrice = new DataColumn(“Total Price”); totalPrice.Expression = “Price + Price*Tax”; table.Columns.Add(col); 12
  13. Sắ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ự • 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); 13
  14. Sắ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; 14
  15. Sắp xếp, tìm kiếm, lọc trong DataTable Hàm nhóm trên cột • DataTable: Dùng phương thức Compute của lớp DataTable object table.Compute(“biểu thức”, “bộ lọc”) • “biểu thức”: giống mệnh đề select – Max(cột) – Min(cột) – Sum(cột) – Count(cột) – Avg(cột) • “bộ lọc”: giống mệnh đề where 15
  16. Sắp xếp, tìm kiếm, lọc trong DataTable Hàm nhóm trên cột • Ví dụ: int p; p = int.Parse(table.Compute(“sum(Price)”, “”); int p; p = int.Parse(table.Compute(“sum(Price)”, “Price
  17. Lớ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 17
  18. Lớp DataRelation • Lấy các “dòng con” và “dòng cha” DataRow[] rows; DataRow row; rows = parentTable.Rows[index].GetChildRows(relation); row = childTable.Rows[index].GetParentRow(relation); §Tạo quan hệ ds.Relations.Add(new DataRelation(…)); 18
  19. Lớ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 19
  20. Lớ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 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2