Hình 2. 23. Kết quả chạy chương trình sinh viên khoa cơ khí
2.2.4. Bài tập về nhà
Bài 1
Viết chương trình thực hiện các công việc sau:
1. Xây dựng Form như hình sau
Hình 2. 24. Quản lý nhân viên nghành mỏ
2. Viết lệnh thực hiện các công việc:
- Khai báo cấu trúc nhân viên bao gồm các thành phần:
+ Các thuộc tính: Mã nhân viên, tên nhân viên, năm sinh, hệ số lương
+ Các phương thức: Hàm có đối để khởi tạo một đối tượng, phương thức nhập và hiển thị thông tin về nhân viên.
- Khai báo cấu trúc nhân viên ngành mỏ có đầy đủ các thông tin của cấu trúc nhân viên bổ sung thêm các thành phần:
+ Thuộc tính: phụ cấp độc hại.
+ Các phương thức: Hàm có đối để khởi tạo một đối tượng, phương thức nhập, hiển thị và phương thức tính lương (lương nhân viên = (hệ số lương+phụ cấp)*1050).
- Khi người dùng kích vào nút “Nhập” thực hiện thêm nhân viên ngành mỏ vào danh sách (Kiểm tra dữ liệu nhập vào).
- Khi người dùng kích vào nút “Hiển thị” thực hiện hiển thị danh sách nhân viên ngành mỏ lên listView.
- Khi kích vào một dòng trên listView thì thông tin của nhân viên hiển thị lên các control tương ứng.
- Khi người dùng kích vào nút “Xóa” thực hiện xóa nhân viên đó ra khỏi danh sách, hiển thị lại danh sách lên listView.
- Khi người dùng kích vào nút “Sửa” thực hiện sửa thông tin của nhân viên đó, hiển thị lại danh sách lên listView.
- Khi người dùng kích vào nút ”Nhân viên có lương cao nhất” thực hiện hiển thị lên listView những nhân viên có lương cao nhất.
Bài 2
Viết chương trình thực hiện các công việc sau:
1. Khai báo cấu trúc tiền điện với các thông tin bao gồm:
- Thuộc tính: Họ tên chủ hộ, địa chỉ, số công tơ tháng trước, số công tơ tháng này.
- Phương thức: Hàm tạo 4 tham số, hiển thị, phương thức tính số công tơ điện đã dùng (bằng số công tơ tháng này – số công tơ tháng trước), phương thức tính tiền điện được tính theo công thức: Số điện đã dùng * 1240.
2. Khai báo cấu trúc tiền điện mới có đầy đủ các thông tin của lớp tiền điện để tính tiền điện theo một quy định mới. Việc tính tiền điện lúc này căn cứ vào định mức quy định. Nếu trong định mức đơn giá là 1240 VNĐ/1 số, ngoài định mức là 1600VNĐ/1 số.
3. Xây dựng chương trình có chức năng thanh toán tiền điện theo quy định trên.
Hướng dẫn:
- Khai báo cấu trúc Tiendien như đề bài
- Khai báo cấu trúc TienDienMoi có đầy đủ các thuộc tính và phương thức của lớp Tiendien bổ sung thêm các thành phần: định mức, điều chỉnh lại phương thức nhập, hiển thị, tính tiền điện.
- Thiết kế Form cho phép thực hiện nhập, hiển thị, thêm, sửa, xóa hóa đơn tiền
điện.
Bài 3
Một điểm dịch vụ cần quản lý các thông tin cho thuê xe đạp và xe máy. Với xe
đạp cần lưu họ tên người thuê, số giờ thuê. Tiền thuê xe đạp được tính như sau: 10000
(VNĐ) cho giờ đầu tiên, 8000 cho mỗi giờ tiếp theo. Với xe máy cần lưu họ tên người thuê, số giờ thuê, loại xe (100 phân khối, 125 phân khối), biển số. Tiền thuê xe máy được tính như sau: Đối với giờ đầu tiên, loại xe 100 phân khối tính 15000, loại xe 150 phân khối tính 20000. Đối với những giờ tiếp theo tính 10000 cho cả hai loại xe máy. Viết chương trình thực hiện các công việc sau:
1. Thiết kế Form như hình sau:
Hình 2. 25. Quản lý thuê xe
2. Viết mã lệnh thực hiện các công việc sau:
- Khai báo cấu trúc Xe gồm các thuộc tính: Họ tên, giờ thuê. Các phương thức tính tiền thuê, phương thức hiển thị.
- Khai báo cấu trúc Xe đạp có đầy đủ các thuộc tính của cấu trúc xe, có thuộc tính hiển thị và tính tiền thuê xe.
- Khai báo cấu trúc Xe máy có đầy đủ các thuộc tính và phương thức của cấu trúc xe, bổ sung thêm thuộc tính loại xe và biển xe.
- Khi người dùng kích vào nút “Nhập”: thực hiện thêm thông tin thuê xe vào danh sách.
- Khi người dùng kích chọn loại xe ở combobox tương ứng sau đó chọn nút “Hiển thị” thì hiển thị thông tin lên listView tương ứng.
- Khi người dùng kích vào nút “Tiền thuê xe đạp” thực hiện đưa ra tổng số tiền thuê xe đạp.
- Khi người dùng kích vào nút “Tổng số tiền thuê 2 loại xe” thực hiện đưa ra tổng số tiền thuê hai loại xe.
BÀI 3. LẬP TRÌNH TRÊN FORM BƯỚC ĐẦU THAO TÁC VỚI CƠ SỞ DỮ LIỆU
Mục tiêu
Sau bài học, sinh viên có khả năng:
- Kiến thức: Biết thiết kế Form và sử dụng C# lập trình trên form để thực hiện các thao tác với cơ sở dữ liệu: cập nhật và tìm kiếm
- Kỹ năng: Vận dụng được kiến thức thiết kế và lập trình trên form thực hiện cập nhật cơ sở dữ liệu vào giải quyết các bài toán thực tế.
- Thái độ:
+ Nghiêm túc, sáng tạo
+ Tích cực tập luyện
Chuẩn bị dụng cụ, vật tư, thiết bị
Chuẩn bị máy tính có hệ điều hành Windows XP hoặc cao hơn, phần mềm Microsoft Office, bộ gò Tiếng Việt,phần mềm SQL Server 2000 hoặc cao hơn,phần
mềm Visual Studio 2008 hoặc cao hơn.
3.1. Tóm tắt lý thuyết liên quan
1. Các câu lệnh SQL thao tác với cơ sở dữ liệu
a. Câu lệnh tìm kiếm SELECT
Công dụng: Tìm kiếm thông tin trong cơ sở dữ liệu.
Cú pháp:
SELECT distinct [<danh_sách_trường biểu thức>] FROM <danh_sách_tên_bảng tên_các_view>
WHERE<biểu_thức_điều_kiện của bản ghi | kết nối>
GROUPE BY <danh_sách_tên_trường | biểu thức có trong SELECT>
HAVING <biểu_thức_điều_kiện của nhóm>
ORDER BY < tên_trường số_thứ_tự_trường biểu_thức>, [ASC/
DESC ]
1) Mệnh đề Select: Được sử dụng để chỉ định các trường, các biểu thức cần
đưa ra
2) Mệnh đề FROM: Được sử dụng nhằm chỉ định các bảng, view chứa
thông tin cần tìm kiếm.
3) Mệnh đề WHERE: Được sử dụng nhằm xác định các điều kiện của các bản ghi phải thỏa mãn yêu cầu tìm kiếm.
4) Mệnh đề GROUP BY: Được sử dụng để gộp một nhóm các bản ghi thành một bản ghi theo yêu cầu gộp nhóm.
5) Mệnh đề HAVING: Được sử dụng để đưa ra điều kiện của nhóm và chỉ sử dụng khi có mệnh đề GROUP BY.
6) Mệnh đề ORDER BY: Được sử dụng để sắp xếp kết quả tìm kiếm.
Chú ý: Các thành phần trong câu lệnh SELECT phải được sử dụng theo đúng thứ tự trên.
b. Câu lệnh thêm dữ liệu INSERT
Công dụng: Thêm dòng dữ liệu (mẫu tin/record) vào bảng. Cú pháp:
INSERT INTO tên_bảng
[(danh_sách_cột)] VALUES(danh_sách_trị)
c. Câu lệnh cập nhật dữ liệu UPDATE
Công dụng:
- Cập nhật dữ liệu trong các bảng. Cú pháp:
UPDATE tên_bảng SET tên_cột = biểu_thức [ , ...
, tên_cột_k = biểu_thức_k] [FROM danh_sách_bảng] [WHERE điều_kiện]
d. Câu lệnh Xóa dữ liệu DELETE
Công dụng: Để xóa dữ liệu trong bảng.
Cú pháp:
DELETE FROM tên_bảng [FROM danh_sách_bảng] [WHERE điều_kiện]
e. Câu lệnh xóa toàn bộ dữ liệu TRUNCATE
Công dụng: xóa toàn bộ dữ liệu trong bảng. Cú pháp: TRUNCATE TABLE tên_bảng
2. Thao tác kết nối cơ sở dữ liệu với SQL Server
a. Giao tiếp với SQL Server:
Thư viện cần sử dụng: System.Data.SqlClient using System.Data.SqlClient;
Các lớp cần sử dụng:
- SqlConnection: thiết lập kết nối với SQL Server
- SqlCommand: thực thi các câu truy vấn
- SqlParameter: tham số của câu truy vấn
- SqlDataReader: lấy dữ liệu trả về của câu truy vấn
- SqlException: xử lý lỗi
b. Tạo đối tượng trong C#: bằng toán tử new
SqlConnection conn = new SqlConnection();
c. Thiết lập kết nối
- Sử dụng đối tượng của lớp SqlConnection
- Các tham số được đưa vào thuộc tính: ConnectionString
- Gọi hàm Open() để thiết lập kết nối
- Gọi hàm Close() để đóng kết nối
d. Thực thi câu truy vấn
- Tạo đối tượng SqlCommand
- SqlCommand cmd = new SqlCommand(query, conn); query: chuỗi chứa câu truy vấn
conn: kết nối đã được thiết lập
Tuỳ từng trường hợp, dùng một trong các hàm sau để thực thi câu truy vấn:
- ExecuteNonQuery(): Trả về số hàng đã bị ảnh hưởng (thêm/bớt/thay đổi)
- ExecuteScalar(): Trả về giá trị đầu tiên trả về của câu truy vấn
- ExecuteReader(): Trả về một đối tượng SqlDataReader dùng để đọc dữ liệu
e. Xử lý lỗi trong C#
- C# dùng cơ chế xử lý lỗi bằng câu lệnh try…catch try {
// khối lệnh cần thực hiện
} catch (ExpType exp)
{
// xử lý lỗi
}
- Khi xảy ra lỗi, đoạn lệnh trong khối try sẽ dừng và nhảy tới phần xử lý lỗi trong khối catch
- exp là đối tượng chứa thông tin về lỗi cần xử lý
- Các đối tượng trong thư viện System.Data.SqlClient khi xảy ra lỗi sẽ tạo ra đối tượng lỗi có kiểu SqlException
- Việc xử lý lỗi SQL trong C# sẽ có dạng như sau: try {
// các câu lệnh với SQL...
} catch (SqlException exp) {
// xử lý lỗi
}
Ví dụ:
using System; using System.Data;
using System.Data.SqlClient; public class KetNoiSQLServer
{
public static void Main()
{
// Tạo connection string để kết nối
string connectionString = @"Server = .SQLEXPRESS;" + "Integrated Security = true";
// Tạo một connection tới máy chủ
SqlConnection conn = new SqlConnection(connectionString);
// QUA TRINH KET NOI
try
{
// Mở kết nối conn.Open();
Console.WriteLine("Connection opened !");
}
catch (SqlException sqle)
{
// Thông báo biến cố khi kết nối Console.WriteLine("Error: " + sqle.Message);
}
finally
{
// Đóng kết nối conn.Close();
Console.WriteLine("Connection closed !");
}
}
}
3.2. Bài tập mẫu
Bài tập 1.
Xây dựng một chương trình quản lý việc bán hàng của một cửa hàng có các chức năng sau:
- Quản lý được các thông tin về khách hàng, mặt hàng và các giao dịch bán hàng trong mỗi lần mua bán.
- Tìm kiếm được các thông tin về khách hàng, mặt hàng, giao dịch bán hàng theo yêu cầu.
- Tạo được hệ thống menu trên form để thực thi các yêu cầu trên.
Để thực hiện yêu cầu này , người lập trình đã thiết kế một cơ sở dữ liêu có lược đồ như sau:
tblKhachHang(MaKH, HoTen, GioiTinh, DiaChi, DienThoai) tblMatHang(MaMH, TenMatHang, DVT) tblBanHang(SoHieuHD, MaKH, NgayMuaBan) tblChiTietBanHang(SoHieuHD, MaMH, SoLuong, DonGia) Trong đó:
quan hệ
MaKH: Mã khách hàng; HoTen: Họ tên khách hàng; Gioitinh: Giới tính;
Diachi: Địa chỉ; DienThoai: Điện thoại; MaMH: Mã mặt hàng;
TenMatHang: Tên mặt hàng; DVT: Đơn vị tính; SoHieuHD: Số hiệu hóa đơn; SoLuong: Số lượng; DonGia: Đơn giá;
NgayMuaBan: Ngày mua bán.
Các bảng cơ sở dữ liệu có cấu trúc như sau:
Cấu trúc tệp tin tblKhachHang.Data:
Tên trường | Kiểu dữ liệu | |
1 | MaKH | string |
2 | Hoten | string |
3 | Gioitinh | string |
4 | Diachi | string |
5 | DienThoai | string |
Có thể bạn quan tâm!
- Kết Quả Thiết Kế Form Quản Lý Lương Nhân Viên
- Kết Quả Chạy Chương Trình Quản Lý Lương Nhân Viên
- Thực hành kỹ thuật lập trình - 26
- Form Tìm Kiếm Thông Tin Khách Hàng
- Kết Quả Thiết Kế Form Thông Tin Khách Hàng
- Kết Quả Thiết Kế Form Thông Tin Mặt Hàng
Xem toàn bộ 312 trang tài liệu này.
Cấu trúc tệp tin tblMatHang.Data:
Tên trường | Kiểu dữ liệu | |
1 | MaMH | string |
2 | TenMH | string |
3 | DVT | string |
Cấu trúc tệp tin tblBanHang.Data:
Tên trường | Kiểu dữ liệu | |
1 | SoHieuHD | int |
2 | MaKH | string |
3 | NgayMuaBan | string |
Cấu trúc tệp tin tblChiTietBanHang.Data như sau:
Tên trường | Kiểu dữ liệu | |
1 | SoHieuHD | int |
2 | MaMH | string |
3 | SoLuong | int |
4 | DonGia | double |