Tài liệu Bài giảng Lập trình Windows - Chương 5.3: Sắp xếp, tìm kiếm và lọc dữ liệu: Lập trình WindowsChương 5.3. Sắp xếp, tìm kiếm và lọc dữ liệu1Nội dungSắp xếp, tìm kiếm, lọc trong DataTableLớp DataRelationLớp DataViewSắp xếp, tìm kiếm, lọc trong DataTableTìm 1 dòngChọn một số dòngCột tính toánHàm nhóm trên cộtSắp xếp, tìm kiếm, lọc trong DataTableTì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 Sắp xếp, tìm kiếm, lọc trong DataTableTìm 1 dòngDatabase: Thực thi câu lệnh SQLSelect From tenBangWhere CotKhoaChinh=giatriDataTable: Dùng phương thức Find của DataTable.Rows (đối tượng của lớp DataRowCollectionSắp xếp, tìm kiếm, lọc trong DataTableTìm 1 dòngDataRow 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ạnhDùng hàm FillSchema Tự tạo khóa bằng codeSắp xếp, tìm kiếm, lọc trong DataTableTìm 1 ...
25 trang |
Chia sẻ: putihuynh11 | Lượt xem: 528 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Lập trình Windows - Chương 5.3: Sắp xếp, tìm kiếm và lọc dữ liệu, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Lập trình WindowsChương 5.3. Sắp xếp, tìm kiếm và lọc dữ liệu1Nội dungSắp xếp, tìm kiếm, lọc trong DataTableLớp DataRelationLớp DataViewSắp xếp, tìm kiếm, lọc trong DataTableTìm 1 dòngChọn một số dòngCột tính toánHàm nhóm trên cộtSắp xếp, tìm kiếm, lọc trong DataTableTì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 Sắp xếp, tìm kiếm, lọc trong DataTableTìm 1 dòngDatabase: Thực thi câu lệnh SQLSelect From tenBangWhere CotKhoaChinh=giatriDataTable: Dùng phương thức Find của DataTable.Rows (đối tượng của lớp DataRowCollectionSắp xếp, tìm kiếm, lọc trong DataTableTìm 1 dòngDataRow 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ạnhDùng hàm FillSchema Tự tạo khóa bằng codeSắp xếp, tìm kiếm, lọc trong DataTableTìm 1 dòngVí 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");Sắp xếp, tìm kiếm, lọc trong DataTableTìm 1 dòngDataSet 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");Sắp xếp, tìm kiếm, lọc trong DataTableChọ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 SQLSelect From tenBangWhere tenCot=giatriSelect * From NhanVienWhere Ten like ‘Ta%’Ví dụ:Sắp xếp, tìm kiếm, lọc trong DataTableChọn một số dòngDataTable: Dùng phương thức Select của đối tượng DataTableDataRow[] 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ụSắp xếp, tìm kiếm, lọc trong DataTableCộ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ácDatabase: Thực thi câu lệnh SQLSelect , cot1 cot2 as TenCot, From tenBangVí dụSelect ProductID,Price,Tax,(Price+Price*Tax) as TotalPriceFrom ProductsSắp xếp, tìm kiếm, lọc trong DataTableCột tính toánDataTable: Chỉ ra expression cho cột mớiDataTable 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);Sắp xếp, tìm kiếm, lọc trong DataTableCột tính toánChú ý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ểuChỉ rõ kiểu bằng thuộc tính DataType của lớp DataColumnDataColumn col;col.DataType = typeof(kieu);Sắp xếp, tìm kiếm, lọc trong DataTableHàm nhóm trên cộtDatabase: Thực thi câu lệnh SQLSelect min() From Select max() From Select avg() From Select count() From Select sum() From Select sum(price) From Products;Sắp xếp, tìm kiếm, lọc trong DataTableHàm nhóm trên cộtDataTable: Dùng phương thức Compute của lớp DataTableobject 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 đề whereSắp xếp, tìm kiếm, lọc trong DataTableHàm nhóm trên cộtVí dụ:int p;p = int.Parse(table.Compute(“sum(Price)”, “”);Chú ýDùng lớp Convert hay hàm Parse để chuyển sang kiểu dữ liệu tương ứngint p;p = int.Parse(table.Compute(“sum(Price)”, “Price<100”);Lớp DataRelationDatabaseCho phép tạo quan hệ giữa các bảngCho phép kết (join) giữa các bảngDataTable:Cho phép tạo quan hệ giữa các bảng bằng đối tượng DataRelationKhông cho phép kết (join) giữa các bảngCho phép lấy các “dòng con” của 1 dòngCho phép lấy “dòng cha” của 1 dòngLớp DataRelationLấ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());Lớp DataViewKhái niệm DataViewTạo DataViewSắp xếp, tìm kiếm, lọc trong DataViewChuyển DataView thành DataTableLớp DataViewKhá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 DataViewDataView 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ộtNếu DataTable gồm có các DataRows thì DataView gồm có các DataRowViewsLớp DataViewTạo DataViewCác cách tạo DataViewDataView vw = new DataView();DataView vw = new DataView(table);DataView vw = new DataView(table, “ĐKLoc”, “CotSXep”, ĐK RowState);Trong đóĐKLoc: điều kiện lọc dữ liệuCotSXep: Tên cột dùng để sắp xếpĐK RowState: DataViewRowState.Unchanged, Lớp DataView Sắp xếp, tìm kiếm, lọc trong DataViewThuộc tính của DataViewRowFilter: 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 DataViewint Find(object): Trả về chỉ số dòng thỏa điều kiện tìm kiếmDataRowView[] 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 DataViewLớp DataViewChuyển DataView sang DataTableCú phápDataTable 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)Bài tậpcomboBang: Danh sách các bảng có trong CSDLgridNoiDung: Các dòng trong bảng tương ứngBổ sung thêm cột Thuế (10% của DoanhSo) vào DataTable PhanCongQ&A25
Các file đính kèm theo tài liệu này:
- _huflit_chuong5_3_sapxeptimkiemlocdulieu_0529_1985428.pptx