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 = " + cboDeparts.SelectedValue
Nhưng khi đó các cột vẫn là Tiếng Anh. Bạn hãy thực hiện tiếp thao tác dưới đây.
- Tạo ra các cột muốn hiển thị trên DataGridView và gán dữ liệu tương ứng. Bằng cách:
Giả sử bạn đã tạo ra được 5 cột như sau:
Bạn cần chỉ rõ dữ liệu ứng với từng cột là như thế nào thông qua thuộc tính “DataPropertyName”. Bạn hãy gán trường tương ứng mà bạn đã SELECT ra.
Ví dụ tôi đang chọn cột Mã nhân viên, tôi sẽ nhập “EmployeeID” vào thuộc tính “DataPropertyName”.
Bạn hãy làm tương tự cho các cột khác và sau đó kết quả sẽ tương tự như sau:
Một thao tác nữa là làm cho cột cuối cùng sẽ kéo đầy DataGridView. Để làm điều đó bạn hãy: R-Click vào DataGridView -> Edit Columns -> Chọn cột Quê quán -> Chọn thuộc tính AutoSizeMode -> Chọn Fill
Lúc này việc hiển thị dữ liệu trên DataGridView về cơ bản đã ổn phải không bạn?
Điều khiển DataGridView còn rất nhiều thuộc tính giúp bạn tùy chỉnh hiển thị dữ liệu như mong muốn. Bạn hãy đọc và tìm hiểu thêm nhé!
Chúc bạn thành công!