Lập Trình Cơ Sở Dữ Liệu Với C# | Tìm ở đây
Giới thiệu
Với sự phát triển của công nghệ thông tin, ngày nay mọi lĩnh vực đều cố gắng xây dựng các phần mềm quản lý để tiết kiệm chi phí và tăng hiệu quả lao động như các phần mềm quản lý sản phẩm, quản lý bán hàng, quản lý nhân sự, v.v. Làm sao chúng ta có thể lập trình được một ứng dụng sử dụng dữ liệu được lưu trữ ở một hệ quản trị CSDL nào đó ví dụ như Access hoặc SQL Server. Với sự ra đời của .Net, bạn có thể xây dựng những ứng dụng lập trình với CSDL một cách dễ dàng và nhanh chóng. Đây là bài hướng dẫn từng bước cách lập trình với cơ sở dữ liệu sử dụng ngôn ngữ C# và hệ quản trị CSDL SQL Server.
Chuẩn bị trước
- Cài đặt Visual Studio, bạn có thể download phiên bản 2010
- Có kiến thức cơ bản về lập trình CSDL tại đây
- Chuẩn viết code C# tại đây
- Các câu lệnh SQL cơ bản như SELECT, INSERT, UPDATE, DELETE
Yêu cầu bài toán
Thiết kế cơ sở dữ liêu đặt tên QLBanHang, trong đó có bảng:
tblMatHang( MaSP nchar(5), TenSP nvarchar(30), NgaySX Date, NgayHH Date, DonVi nvarchar(10), DonGia Float , GhiChu nvarchar(200))
Thiết kết giao diện:
- Các phần cửa sổ co giãn hợp lý khi của sổ của Form phóng to hoặc thu nhỏ, ví dụ cửa sổ (3) luôn giữ cố định ở bên trái, phần cửa sổ (4) và (5) co giãn khi Form thay đổi kích thước, (1) và (2) luôn nằm trên đầu và phía dưới cùng của Form.
- Các nút có gắn các phím tắt ví dụ như Alt + T cho nút Tìm kiếm, Alt + H cho nút Thêm, v.v.
a) Chức năng Tìm kiếm
Hỗ trợ các tiêu chí: MaSP, TenSP, NgaySX, NgayHetHan, DonGia
Tiêu đề: TÌM KIẾM MẶT HÀNG
Khi ấn nút Tìm:
- dgvDanhSach sẽ hiển thị tất cả các thông tin về các sản phẩm thoả mãn các tiêu chí lựa chọn.
- Cấm Click vào các nút Sửa, Xoá
- Khi Click vào từng trường, các thông tin sẽ hiển thị chi tiết sang các control bên grbChiTiet, nhưng không cho phép sửa đổi dữ liệu. Không cho kích vào nút Lưu, Huỷ trong grbChiTiet.
b) Chức năng Thêm
Tiêu đề: THÊM MẶT HÀNG
Khi ấn nút Thêm:
- Sẽ xoá trắng các control trong grbChiTiet và hai nút Lưu và Huỷ sẽ kích hoạt.
- Cấm Click vào các nút Sửa, Xoá.
- Khi ấn nút Huỷ, sẽ thoát khỏi chức năng thêm (Xoá trắng grbChiTiet, không cho nhập dữ liệu)
- Khi ấn vào nút Lưu, nếu thêm mới thành công, cập nhật lại dữ liệu trong dgvDanhSach
c) Chức năng Sửa
Tiêu đề: CẬP NHẬT MẶT HÀNG
Nút Sửa chỉ cho Enable = True khi người dùng chọn một bản ghi trong dgvDanhSach.
Khi ấn nút Sửa:
- Cấm Click vào các nút Thêm, Xoá.
- grbChiTiet cho phép sửa dữ liệu. Trong grbChiTiet cho hiển thị nút lệnh Lưu, Huỷ bỏ. Khi ấn nút Huỷ, sẽ thoát khỏi chức năng Sửa (cấm Click vào nút Sửa, cho phép Click vào nút Thêm)
- Nếu Cập nhật thành công, cập nhật lại dgvDanhSach
d) Chức năng Xoá
Tiêu đề: XOÁ MẶT HÀNG
Nút Xoá chỉ cho phép Click khi người dùng chọn một bản ghi trong dgvDanhSach
Khi ấn nút Xoá:
- Cấm Click vào các nút Thêm, Sửa.
- Các control trên grbChiTiet không cho phép sửa dữ liệu. Trong grbChiTiet cho hiển thị nút lệnh Lưu, Huỷ bỏ. Khi ấn nút Huỷ sẽ thoát khỏi chức năng Xoá (cấm Click vào nút Xoá, cho phép Click vào nút Thêm)
Xây dựng chương trình
1. Tạo mới Project
- Kích vào menu Start > All Programs > Microsoft Visual Studio 2010 (tuỳ theo phiên bản bạn cài)
- Rồi trên cửa sổ VS 2010 kích vào menu File > New > Project …
- Chọn ngôn ngữ C# và kiểu ứng dụng bạn lập trình. Trong trường hợp này bạn chọn Windows Form Application
- Giao diện cửa sổ dự án
- Toolbox: chứa các control cho phép chúng ta kéo thả vào giao diện. Trong ứng dụng này chúng ta sẽ sử dụng các control: Label, TextBox, DateTimePicker, Button, Spliter, Panel, GroupBox
- Solution Explorer: chứa toàn bộ tài nguyên dự án như các file code, các thư viện …
- Properties: chứa các thuộc tính, các sự kiện của control và form
- Ngoài ra còn có các cửa sổ khác như Server Explorer, Error List, Output …, nếu không thấy cửa sổ nào bạn có thể vào menu View để chọn.
- Project ban đầu khởi tạo có Form1.cs là form mặc định, bạn có thể kích chuột phải chọn Rename thành frmMatHang và thực hiện thay đổi các thuộc tính nếu cần thiết.
2. Tạo cơ sở dữ liệu
Lập trình CSDL với .NET có một chuẩn chung với các nguồn cơ sở dữ liệu khác nhau, nó chỉ khác nhau về .NET Data Provider. Trong bài này chúng ta sẽ sử dụng hệ quản trị CSDL SQL Server được cài mặc định khi cài Visual Studio
- Kích chuột phải vào tên Project trong của sổ Solution Explorer > Add > New Item > Service-based Database
- Bạn ấn nút Next và Finish để kết thúc tạo file. Sau đó bạn nhìn thấy có một file QLBanHang.mdf xuất hiện trong cửa sổ Solution Explorer
- Kích đúp vào file này, bạn nhìn thấy nó xuất hiện cửa sổ Server Explorer, chọn tên Database QLBanHang > Tables > kích chuột phải chọn Add New Table, rồi thực hiện tạo bảng với cấu trúc như trên yêu cầu
3. Giao diện thiết kế
- Thiết kế giao diện và đặt các thuộc tính
Phần giao diện | Loại control | Các thuộc tính |
---|---|---|
Cửa sổ chính | Form | Name = frmMatHang Text = Quản lý sản phẩm |
ErrorProvider | Name = errChiTiet | |
(1) | Panel | Dock = Top |
Label | Name = lblTieuDe | |
(2) | Panel | Dock = Bottom |
Button | Name = btnTimKiem Text = &Tìm kiếm | |
Button | Name = btnThem Text = T&hêm | |
Button | Name = btnSua Text = &Sửa | |
Button | Name = btnXoa Text = &Xoá | |
Button | Name = btnThoat Text = Th&oát | |
Button | Name = btnTimKiem Text = &Tìm kiếm | |
(3) | GroupBox | Dock = Left Text = Chi tiết |
Spliter | Dock = Left | |
Label | Text = Mã SP: | |
TextBox | Name = txtMaSP | |
Label | Text = Tên SP: | |
TextBox | Name = txtTenSP | |
Label | Text = Ngày SX: | |
DateTimePicker | Name = dtpNgaySX Format=Short | |
Label | Text = Ngày HH: | |
DateTimePicker | Name = dtpNgayHH Format=Short | |
Label | Text = Đơn vị: | |
TextBox | Name = txtDonVi | |
Label | Text = Đơn giá: | |
TextBox | Name = txtDonGia TextAlign = Right | |
Label | Text = Ghi chú: | |
TextBox | Name = txtGhiChu Multiline = True | |
Button | Name = btnLuu Text = &Lưu | |
Button | Name = btnHuy Text = &Huỷ | |
(4) | GroupBox | Text = Tìm kiếm Dock = Top |
Spliter | Dock = Top | |
Label | Text = Mã SP: | |
TextBox | Name = txtTKMaSP | |
Label | Text = Tên SP: | |
TextBox | Name = txtTKTenSP | |
(5) | GroupBox | Text = Kết quả Dock = Fill |
DataGridView | Name = dgvKetQua |
- Chú ý để thiết kế được giao diện thân thiện với người dùng và các control tự co giãn khi Form thay đổi kích thước cần thiết kế, chú ý kéo các control đúng thứ tự như sau:
- Giao diện phần (1): là phần nhãn tiêu đề, kéo control Panel vào Form và đặt thuộc tính Dock = Top để cho Panel luôn nằm ở trên đầu của Form, sau đó kéo một Label nằm trên Panel này.
- Giao diện phần (2): là phần các nút Tìm kiếm, Thêm … cũng làm tương tự như phần (1), kéo control Panel và đặt thuộc tính Dock = Bottom để Panel này luôn nằm cuối của Form, sau đó mới đặt các Button nằm trên Panel này.
- Giao diện phần (3): là phần chi tiết, kéo control GroupBox vào Form và đặt thuộc tính Dock = Left, sau đó thiết kế các control cho nhập Mã SP, Tên SP … Sau đó ta kéo thêm control Spliter và đặt thuộc tính Dock = Left để cho phép người dùng thay đổi độ rộng giữa phần (3) với phần (4) và (5).
- Giao diện phần (4): là phần tìm kiếm, kéo control GroupBox vào Form và đặt thuộc tính Dock = Top, lúc này nó sẽ nằm ở trên phần còn lại. Sau đó đặt các control cho phép nhập tìm kiếm như Mã SP, Tên SP … Trong phần này ta cũng kéo control Spliter, đặt thuộc tính Dock = Top để cho phép người sử dụng thay đổi độ rộng giữa phần (4) và phần (5)
- Giao diện phần (5): là phần hiển thị dữ liệu, kéo control GroupBox và đặt thuộc tính Dock = Fill, sau đó kéo control DataGridView nằm trong GroupBox này nó sẽ chiếm toàn bộ phần không gian còn lại.
- Viết chương trình chạy trên Windows thì cần tuân theo chuẩn của Windows, ví dụ khi ấn phím Tab trên bàn phím thì con trỏ sẽ chạy từ bên trên -> sang trái -> xuống dưới -> sang phải. Nếu thứ tự bạn kéo control không đúng thì khi ấn phím Tab sẽ nhảy lung tung. Bạn có thể đặt lại bằng cách vào menu View > Tab Order để đặt lại thứ tự Tab trên các control. Sau khi đặt xong quay lại chọn lại menu View > Tab Order để kết thúc.
4. Phần code lập trình các chức năng
- Khai báo .Net Data Provider cho SQL Server
- Khai báo các biến toàn cục nằm ngay dưới class
- Viết sự kiện Form_Load, xảy ra khi form khởi động lên. Chúng ta thực hiện khởi tạo kết nối và nạp dữ liệu lên DataGridView
- Chức năng tìm kiếm, sử dụng sự kiện Click của nút Tìm kiếm
- Chức năng Thêm, sử dụng sự kiện Click của nút Thêm
- Chức năng Sửa xảy ra khi chọn một bản ghi trên DataGridView. Kích đúp vàp DataGridView, VS sẽ phát sinh tự động sự kiện CellContentClick. Chúng ta lấy giá trị hàng hiện tại thông qua tham số của sự kiện DataGridViewCellEventArgs e trả về qua thuộc tính RowIndex. Sau đó ta viết sự kiện Click của nút Sửa
- Chức năng Xoá xảy ra khi chọn một bản ghi trên DataGridView. Chúng ta vẫn sử dụng lại sự kiện ở CellContentClick của DataGridView ở phía trên. Sau đó ta viết sự kiện Click của nút Xoá
- Chức năng Lưu, chúng ta dựa vào trạng thái Enable của các nút Thêm, Sửa hoặc Xoá để xác nhận trạng thái thực thi câu lệnh SQL
- Kích vào nút Huỷ để huỷ bỏ công việc đang làm
- Kích vào nút Thoát
Download mã nguồn toàn bộ chương trình
- Chú ý:
- Khi bạn download mã nguồn về, cần chỉnh sửa đường dẫn đến nơi đặt CSDL của bạn. Đây là source code demo, nên tôi để hardcode chuỗi kết nối. Để xây dựng ứng dụng chuyên nghiệp, bạn nêu lưu chữ chuỗi kết nối trong file app.config để tiện thay đổi khi đi triển khai sản phẩm.
- Để nhập dữ liệu văn bản có dấu tiếng việt vào trong CSDL từ giao diện phần mềm, bạn cần thêm ký tự N trước giá trị của mỗi trường trong câu lệnh SQL, như ví dụ trên câu lệnh Insert, tôi đã thêm cho các trường MaSP, TenSP, DonVi, GhiChu.
Từ khóa » Học Winform C# Qua Ví Dụ
-
Trọn Bộ Giáo Trình C# Windows Form - Những Sai Lầm Khi Làm Lập Trình
-
Đề Xuất 7/2022 # Tự Học Lập Trình Winform C# Qua Các Ví Dụ Bài ...
-
Lỗi Thường Gặp Trong Lập Trình Winform – Series Giải Pháp Winforms (1)
-
Lập Trình Trực Quan [ Full Đáp Án C# Windows Forms ] - C10MT
-
Bài 1 - Làm Quen Với C# - Lập Trình Winform - SlideShare
-
Winforms Trong C# Đã Hết Thời Hay Chưa? - CodeLearn
-
Các Bước Viết ứng Dụng Windows Form Căn Bản - Freetuts
-
[Bài 01] – Thuộc Tính, Phương Thức, Sự Kiện Trong C# Winform
-
[Lập Trình C# Winform] - Bài 2: Tổng Quan Form | HowKteam
-
Winform Là Gì? Được ứng Dụng Như Thế Nào? Có Nên Học ... - Plctech
-
Phần 1: Form Và Các Control Thông Dụng | Tìm ở đây
-
LẬP TRÌNH ỨNG DỤNG WINDOWS FORM C#.NET - Đào Tạo Lập ...