Trình bày dữ liệu với DataGridView và ComboBox

Trình bày dữ liệu với DataGridView và ComboBox

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

Trình bày dữ liệu với DataGridView và ComboBox

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!

 

Bạn thấy bài viết này như thế nào?: 
Average: 7.8 (14 votes)
Ảnh của Tommy Tran

Tommy owner Express Magazine

Drupal Developer having 9+ year experience, implementation and having strong knowledge of technical specifications, workflow development. Ability to perform effectively and efficiently in team and individually. Always enthusiastic and interseted to study new technologies

  • Skype ID: tthanhthuy

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Drupalfund giúp get Tess to Drupalcon 2014 tại Austin!

Drupalfund giúp get Tess to Drupalcon 2014 tại Austin!

Flag module 8.x will have the benefit of uncovering bugs in Drupal 8 early so they can be fixed before D8 is released.

Những lý do tại sao sử dụng Panels trong Drupal CMS

Những lý do tại sao sử dụng Panels trong Drupal CMS

Panels unites the two mindsets. It knows what the incoming data is

Web.com mua đứt NetworkSolutions

Web.com mua đứt NetworkSolutions

Web.com , một nhà cung cấp dịch vụ tiếp thị trực tuyến cho các doanh nghiệp nhỏ, đã mua NetworkSolutions, nhà cung cấp tên miền, với giá 560 triệu USD.

Công ty diệt chuột T&C

 

Diet con trung