Just another WordPress.com site

Khi bạn lập trình với Windows Forms và CSDL, chắc hẳn bạn đã từng thiết kế những Form rất đơn giản chỉ 2 cái TextBox với  3 nút Thêm, Sửa, Xóa để cập nhật dữ liệu xuống DataGridView và Database. Như vậy có vẻ như giao diện sẽ không được “thuận mắt” lắm và thao tác không trở lên hơi “rườm rà”. Bài viết này tôi sẽ trình bày cho các bạn cách cập nhật dữ liệu (thêm, sửa, xóa) trực tiếp trên điều khiển DataGridView và lưu xuống cơ sở dữ liệu một cách tự động.

Trong bài viết này, tôi sử dụng CSDL SQL Server có tên HRM, có 1 bảng là: Departments 

Bước 1: Thiết kế CSDL với bảng Departments như dưới đây (Khóa chính tự động tăng)

Bước 2: Bây giờ bạn cần thiết kế giao diện như sau:

Cách thiết kế và gán ràng buộc dữ liệu với DataGridView tôi đã trình bày trong bài viết trước. Trong ví dụ này bạn ràng buộc dữ liệu với 2 trường: DepartmentIDDepartmentNameDescription. Tuy nhiên cột Mã phòng ban của bạn sẽ ẩn đi bằng cách cho thuộc tính Visible của cột đó = False. Tại sao lại ẩn đi? Nhằm trong suốt với người dùng, đây là trường tự động tăng nên người dùng không cần nhập, không cần quan tâm, nhưng lại là trường mà người lập trình cần thiết kế để thuận tiện trong thao tác cập nhật.

Bước 3: Lập trình hiển thị dữ liệu lên DataGridView

Khi viết xong đoạn lệnh trên, bạn chạy lên thì kết quả  có thể đã hiển thị nhưng cột STT vẫn trống vì không có ràng buộc với trường này. Bởi vậy bạn hãy viết trong sự kiện RowPrePaint của điều khiển DataGridView như sau:

Lúc này cột số thứ tự của bạn sẽ điền số tự động như mong muốn. Hãy chuyển sang bước 4.

Bước 4: Viết phương thức cập nhật dữ liệu tự động từ DataGridView xuống  Database.

Bước 5: Gọi phương thức AutoUpdateDepartments() tại nơi bạn muốn thực hiện thao tác cập nhật.

Giả sử ở đây tôi muốn nhấn nút “Lưu” sẽ thực hiện toàn bộ những thay đổi trên điều khiển DataGridView xuống Database. Tôi chỉ việc gọi trong sự kiện Click của nút btnSave:

Bước 6: Chạy chương trình và thử nghiệm.

Bây giờ bạn có thể xóa 1 dòng (chọn đầu dòng và nhấn phím Delete), thêm mới 1 dòng hay sửa dữ liệu trên dòng đã có rồi nhấn nút “Lưu”. Điều mà bạn mong muốn nhất sẽ xảy ra!

Các bạn có thể biến Form này thuận tiện như nhập liệu trên Excel thì hãy bỏ nút Lưu đi, khi Thêm và sửa một dòng sẽ tự động lưu bằng cách gọi phương thức trên trong sự kiện CellEndEdit của DataGridView. Còn trường hợp xóa thì sao? Hãy gọi phương thức trên trong sự kiện RowRemoved của DataGridView.

Tuy nhiên bạn cũng không nên quá lạm dụng việc cập nhật tự động này. Chỉ nên áp dụng đối với Form có ít trường, ít dữ liệu và đủ các trường cần nhập trên Form. Đặc biệt là dữ liệu chỉ nên liên quan trên 1 bảng thôi. (Nhiều cũng có thể nhưng khi đó xử lý sẽ rất phức tạp).

Nếu bạn thấy hứng thú với vấn đề này, hãy làm thử ngay và chúc bạn thành công!

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

Mây thẻ

%d bloggers like this: