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 (473.95 KB, 10 trang )
Trình bày dữ liệu với DataGridView và ComboBox
Đăng ngày: Thứ Sáu, 30/03/2012 12:00 AM
Lượt xem: 1211
Bài viết này tôi sẽ giới thiệu với các bạn mới học lập trình Windows Forms cách đọc và trình bày dữ liệu
lên các điều khiển DataGridView và ComboBox. Bài viết này sẽ liên quan đến kiến thức lập trình
ADO.NET thao tác với CSDL SQL Server.
Trong bài này, tôi có cơ sở dữ liệu HRM (Quản lý nhân sự) với 2 bảng CSDL: Departments (Đơn vị) và
Employees (Nhân viên).
Bài toán đặt ra là: Hiển thị các đơn vị lên điều khiển ComboBox (cboDeparts); mỗi khi người dùng chọn
vào 1 đơn vị trên ComboBox sẽ hiển thị ra danh sách nhân viên tương ứng với phòng ban đó trên điều
khiển DataGridView (dgvEmployees).
Để làm được điều đó bạn thực hiện như sau:
Bước 1: Thiết kế cơ sở dữ liệu như hình trên
Bước 2: Thiết kế giao diện như sau
Bước 3: Khai báo các đối tượng để thao tác với CSDL
Để làm việc với ADO.NET thao tác với CSDL SQL Server bạn sử dụng 2 thư viện sau:
System.Data.SqlClient và System.Data;
Trong Code bạn khai báo các đối tượng sau:
Bước 4: Lập trình hiển thị các đơn vị lên điều khiển ComboBox
Trong sự kiện Load của Form, bạn lập trình như sau:
Bước 5: Hiển thị danh sách nhân viên tương ứng của mỗi đơn vị
Trong sự kiện SelectionChangeCommitted của cboDeparts bạn lập trình như sau:
Bây giờ bạn nhấn F5 để chạy. Sau đó chọn 1 phòng ban tương ứng, dữ liệu sẽ hiển thị tương tự
như sau:
Bước 6: Hiệu chỉnh cách hiển thị trên DataGridView
Như bạn thấy ở trên, kết quả đã hiển thị chính xác. Tuy nhiên, việc hiển thị tiêu đề các cột là Tiếng Anh
và có thể có nhiều trường không muốn hiển thị cũng xuất hiện. Bởi vậy bạn muốn tùy chỉnh hiển thị trên
DataGridView. Bạn có thể hiệu chỉnh bằng một số thao tác sau:
- Chỉ SELECT ra các trường muốn hiển thị: Giả sử bây giờ ta chỉ hiển thị các trường:
EmployeeID, FullName, Gender, Birthday. Bạn chỉ cần thay đổi câu truy vấn thành như sau: "Select
EmployeeID, FullName, Gender, Birthday, Address from Employees Where DepartmentID = " +