Bài giảng Thực hành lập trình CSDL với VB.net: Phần 1 do trường ĐH Sư Phạm Kỹ Thuật Nam Định biên soạn cung cấp cho người học các kiến thức: Sử dụng VB.NET lập trình trên Form để cập nhật cơ sở dữ liệu; Sử dụng VB.NET lập trình tìm kiếm thông tin và hiển thị kết quả trên form. Mời các bạn cùng tham khảo!
Trang 1LỜI NÓI ĐẦU
VB.NET là một ngôn ngữ lập trình trực quan, hướng đối tượng và hướng sự kiện Hơn nữa, nó có một bộ công cụ CASE giúp dễ dàng phát triển các ứng dụng trên môi trường Win Form và Web Form
Cuốn tài liệu này các tác giả biên soạn theo hướng tiếp cận kỹ năng nhằm giúp cho sinh viên nhanh chóng tiếp thu và sử dụng được các công cụ của VB.NET cũng như lập trình được để phát triển các ứng dụng trong thực tế
Cuốn tài liệu gồm 4 bài:
Bài 1: Sử dụng VB.NET lập trình trên Form để cập nhật cơ sở dữ liệu
Mục đích của bài này giúp các sinh viên có kỹ năng sử dụng VB.NET để lập trình cập nhật cơ sở dữ liệu của một ứng dụng
Bài 2: Sử dụng VB.NET lập trình tìm kiếm thông tin và hiển thị kết quả trên form
Mục đích của bài này giúp các sinh viên có kỹ năng sử dụng VB.NET để lập trình tìm kiếm thông tin và hiển thị kết quả tìm kiếm trên Form
Bài 3: Lập trình và in ấn báo cáo
Mục đích của bài này giúp các sinh viên có kỹ năng sử dụng Crystal Report để thiết kế các báo cáo và sử dụng VB.NET để lập trình các form điều khiển việc xem, in báo cáo
Bài 4: Lập trình menu và phân phối ứng dụng
Mục đích của bài này giúp các sinh viên có kỹ năng sử dụng VB.NET để tạo và lập trình menu cho ứng dụng Đồng thời, giúp sinh viên có kỹ năng tạo bộ cài đặt, đóng gói và phân phối các ứng dung
Cuốn tài liệu không tránh khỏi còn có những sai sót, mong nhận được sự đóng góp của các thầy cô giáo và các em sinh viên để cuốn tài liệu ngày một hoàn thiện hơn
Xin trân trọng cảm ơn
Các tác giả
Trang 2MỤC LỤC
BÀI 1 SỬ DỤNG VB.NET LẬP TRÌNH TRÊN FORM 10
ĐỂ CẬP NHẬT CƠ SỞ DỮ LIỆU 10
1.1 Tóm tắt kiến thức cần nhớ 10
1.2 Hướng dẫn thực hành 5
1.2.1 Bài tập mẫu 5
1.2.2 Hướng dẫn thực hiện: 11
1.2.3 Bài tập thực hành 44
1.3 Bài tập về nhà 62
BÀI 2 SỬ DỤNG VB.NET LẬP TRÌNH TÌM KIẾM THÔNG TIN 65
VÀ HIỂN THỊ KẾT QUẢ TRÊN FORM 65
2.1 Tóm tắt kiến thức cần nhớ 65
2.1.1 Câu lệnh SQL để tìm kiếm thông tin trong cơ sở dữ liệu 65
2.1.2 Sử dụng Form để hiển thị thông tin tìm kiếm 66
2.2 Hướng dẫn thực hành 68
2.2.1 Bài tập mẫu 68
2.1.2 Hướng dẫn thực hiện 80
2.2.3 Bài tập thực hành 120
2.3 Bài tập về nhà 145
BÀI 3 LẬP TRÌNH VÀ IN ẤN BÁO CÁO 147
3.1 Tóm tắt kiến thức cần nhớ 147
3.2 Hướng dẫn thực hành 154
3.2.1 Bài tập mẫu 154
3.2.2 Hướng dẫn thực hiện 168
3.3 Bài tập áp dụng 234
3.3 Bài tập về nhà 258
BÀI 4 LẬP TRÌNH MENU VÀ PHÂN PHỐI ỨNG DỤNG 259
4.1 Tóm tắt kiến thức cần nhớ 259
4.1.1 Menu 259
4.1.2 Phân phối ứng dụng 261
4.2 Hướng dẫn thực hành 263
4.2.1 Bài tập mẫu 263
Trang 34.2.2 Hướng dẫn thực hiện 266
4.2.3 Bài tập thực hành 285
4.3 Bài tập về nhà 296
BÀI TẬP NHÓM 297
DANH MỤC TÀI LIỆU THAM KHẢO 299
Trang 4DANH MỤC HÌNH
Hình 1 Form dạng bản ghi 2
Hình 2 Form dạng danh sách 2
Hình 3 Form dạng một nhiều 3
Hình 4 Fom cập nhật thông tin khách hàng 8
Hình 5 Form hiển thị và cập nhậtdanh sách mặt hàng 9
Hình 6 Form cập nhật thông tin bán hàng 10
Hình 7 Cửa sổ Add New Item 12
Hình 8 Cửa sổ Data Source Configuration Wizard 12
Hình 9 Cửa sổ Change Data Source 13
Hình 10 Cửa sổ Add Connection 14
Hình 11 Cửa sổ Data Source Configuration Wizard 15
Hình 12 Hoàn thành việc kết nối với cơ sở dữ liệu 15
Hình 13 Kết quả sau khi kéo bảng khách hàng vào form 16
Hình 14 Kết quả thiết kế form thông tin khách hàng 22
Hình 15 Kết quả thực thi form thông tin khách hàng 23
Hình 16 Form danh sách mặt hàng 24
Hình 17 Cửa sổ Edit Columns 25
Hình 18 Kết quả thiết kế form danh sách mặt hàng 32
Hình 19 Kết quả thực thi form danh sách mặt hàng 32
Hình 20 Form chi tiết bán hàng 33
Hình 21 Cửa sổ Edit Columns 34
Hình 22 Kết quả thiết kế form chi tiết bán hàng 43
Hình 23 Kết quả thực thi form chi tiết bán hàng 44
Hình 24 Form thông tin giáo viên 45
Hình 25 Form danh sách môn học 47
Hình 26 Form phân công giảng dạy 48
Hình 27 Form thông tin tài sản 51
Hình 28 Form danh sách đơn vị sử dụng 52
Hình 29 Form quản lý tài sản 53
Hình 30 Form thông tin sinh viên 56
Hình 31 Form danh sách khoa 58
Trang 5Hình 32 Form danh sách môn học 60
Hình 33 Form quản lý điểm sinh viên 61
Hình 34 Form tìm kiếm thông tin đơn giản 67
Hình 35 Form tìm kiếm thông tin theo nhiều điều kiện 67
Hình 36 Form tìm kiếm thông tin khách hàng 69
Hình 37 Form tìm kiếm thông tin bán hàng 72
Hình 38 Form tìm kiếm thông tin bán hàng 74
Hình 39 Form tìm kiếm thông tin 76
Hình 40 Form tìm kiếm thông tin khách hàng mua mặt hàng 78
Hình 41 Form tìm kiếm thông tin khách hàng 80
Hình 42 Cửa sổ Add New Item 81
Hình 43 Kết quả thiết kế form tìm kiếm khách hàng 87
Hình 44 Kết quả thực thi form tìm kiếm khách hàng 87
Hình 45 Kết quả tìm kiếm khách hàng theo tên 88
Hình 46 Kết quả tìm kiếm tất cả các khách hàng 88
Hình 47 Kết quả thiết kế form tìm kiếm mặt hàng 93
Hình 48 Kết quả tìm kiếm mặt hàng theo mã 93
Hình 49 Kết quả tìm kiếm mặt hàng theo tên mặt hàng 94
Hình 50 Kết quả tìm kiếm tất cả mặt hàng 94
Hình 51 Form tìm kiếm thông tin bán hàng 95
Hình 52 Kết quả thiết kế form tìm kiếm thông tin bán hàng 102
Hình 53 Kết quả thực thi form tìm kiếm thông tin bán hàng 103
Hình 54 Form tìm kiếm thông tin bán hàng 103
Hình 55 Kết quả thiết kế form tìm kiếm thông tin bán hàng 111
Hình 56 Kết quả thực thi form tìm kiếm thông tin bán hàng 111
Hình 57 Form tìm kiếm thông tin các mặt hàng mà khách hàng đã mua 112
Hình 58 Kết quả thiết kế form tìm kiếm thông tin mặt hàng khách hàng đã mua 115
Hình 59 Kết quả thực thi form tìm kiếm thông tin mặt hàng khách hàng đã mua 115
Hình 60 Form tìm kiếm thông tin số lần một mặt hàng đã mua bời khách hàng 116
Hình 61 Kết quả thiết kế form tìm kiếm số lần mặt hàng khách hàng đã mua 119
Hình 62 Kết quả thực thi form tìm kiếm số lần mặt hàng khách hàng đã mua 120
Hình 63 Form tìm kiếm thông tin giáo viên 121
Hình 64 Form tìm kiếm môn học 123
Hình 65 Tìm kiếm phân công giáo viên 125
Trang 6Hình 66 Tìm kiếm phân công giáo viên theo môn học 127
Hình 67 Form tìm kiếm đơn vị 129
Hình 68 Fom tìm kiếm tài sản 131
Hình 69 Fom tìm kiếm tài sản thuộc đơn vị 133
Hình 70 Form tìm kiếm tài sản theo tình trạng 135
Hình 71 Form tìm kiếm môn học 137
Hình 72 Form tìm kiếm thông tin về khoa 139
Hình 73.Form tìm kiếm sinh viên 140
Hình 74 Form tìm kiếm điểm của sinh viên theo học kỳ 142
Hình 75 Form tìm kiếm điểm sinh viên theo môn học 144
Hình 76 Báo cáo dạng label in nhiều label trên một trang 148
Hình 77 Báo cáo dạng label in trên một trang 149
Hình 78 Báo cáo dạng 1 bản ghi trên một trang 149
Hình 79 Cửa sổ Add New Item 150
Hình 80 Cửa sổ Crystal Reports Gallery 151
Hình 81 Form điều khiển việc in giấy mời khách hàng 153
Hình 82 Form điều khiển việc in hóa đơn bán hàng 154
Hình 83 Giấy mời tham dự hội nghị khách hàng 155
Hình 84 Form điều khiển việc in giấy mời khách hàng 156
Hình 85 Mẫu bảng kê bán hàng 158
Hình 86 Hóa đơn bán hàng 158
Hình 87 Form điều khiển việc in hóa đơn 160
Hình 88 Form xem trước khi in hóa đơn bán hàng 162
Hình 89 Form điều khiển việc in báo cáo bán hàng 166
Hình 90 Mẫu giấy mời khách hàng 169
Hình 91 Cửa sổ Add New Item 170
Hình 92 Cửa sổ Crystal Reports Gallery 171
Hình 93 Giao diện thiết kế báo cáo bằng Crystal Report 171
Hình 94 Cửa sổ Format Editor 174
Hình 95 Cửa sổ Databse Expert 175
Hình 96 Cửa sổ Format Editor 176
Hình 97 Cửa sổ Custom Style 176
Hình 98 Kết quả thiết kế giấy mời khách hàng hoàn chỉnh 177
Trang 7Hình 99 Kết quả thực thi in giấy mời khách hàng 178
Hình 100 Form điều khiển việc in giấy mời khách hàng 178
Hình 101 Kết quả thiết kế form in giấy mời khách hàng 186
Hình 102 Kết quả sau khi thực hiện chức năng in giấy mời khách hàng 186
Hình 103 Cửa sổ Formula Name 189
Hình 104 Cửa sổ Formula Workshop 189
Hình 105 Kết quả thiết kế hóa đơn bán hàng bằng Crystal Report 192
Hình 106 Kết quả xem trước hóa đơn bán hàng 192
Hình 107 Form in hóa đơn bảng kê bán hàng 193
Hình 108 Kết quả thiết kế form in hóa đơn, bảng kê bán hàng 205
Hình 109 Form điều khiển việc in ấn hóa đơn bán hàng 205
Hình 110 Nội dung hóa đơn bán hàng sau khi được in ra máy in 206
Hình 111 Cửa sổ Select Resource 208
Hình 112 Kết quả thiết kế form xem trước hóa đơn 212
Hình 113 Kết quả thực thi form xem trước hóa đơn 213
Hình 114 Cửa sổ Formula Name 215
Hình 115 Cửa sổ Formula Workshop 215
Hình 116 Cửa sổ Insert Group 218
Hình 117 Cửa sổ Create Running Total Field 219
Bảng 7 Các hàm để tính toán với nhóm của Crystal Report 220
Hình 118 Cửa sổ Create Running Total Field 221
Hình 119 Cửa sổ Custom Style 222
Hình 120 Kết quả thiết kế báo cáo thống kê bán hàng bằng Crystal Report 223
Hình 121 Kết quả thực thi báo cáo bán hàng 224
Hình 122 Form điều khiển in báo cáo bán hàng 225
Hình 123 Cửa sổ thiết kế form xem trước báo cáo 231
Hình 124 Kết quả thiết kế form điều khiển in báo cáo bán hàng 233
Hình 125 Kết quả thiết kế form xem trước báo cáo bán hàng 233
Hình 126 Kết quả thực thi form in báo cáo bán hàng 234
Hình 127 Kết quả thực thi form xem trước báo cáo bán hàng 234
Hình 128 Mẫu bảng phân công giảng dạy 235
Hình 129 Form in phân công giảng dạy 236
Hình 130 Mẫu bảng phân công giảng dạy theo bộ môn 238
Hình 131 Form in phân công giảng dạy 239
Trang 8Hình 132 Mẫu bảng phân công giảng dạy theo môn học 242
Hình 133 Form in phân công giảng dạy 243
Hình 134 Mẫu bảng danh mục tài sản 245
Hình 135 Form in danh mục tài sản 246
Hình 136 Mẫu bảng danh mục tài sản theo đơn vị sử dụng 248
Hình 137 Form điều khiển việc bảng danh mục tài sản 249
Hình 138 Mẫu bảng điểm sinh viên 252
Hình 139 Form điều khiển in bảng điểm sinh viên 253
Hình 140 Mẫu bảng điểm sinh viên theo môn 255
Hình 141 Form điều khiển in bảng điểm sinh viên 256
Hình 142 Menu kiểu các nút lệnh 260
Hình 143 Menu dạng phân cấp 260
Bảng 8 Bảng danh sách các loại dự án tạo bộ cài đặt 262
Hình 144 Form quản lý bán hàng đã gắn menu 264
Hình 145 Cửa sổ Add New Item 267
Hình 146 Kết quả thiết kế form quản lý 267
Hình 147 Kết quả thực thi form quản lý 268
Hình 148 Cửa sổ Items Collection Editor 269
Hình 149 Kết quả thiết kế menu 270
Hình 150 Kết quả thực thì form quản lý có menu 270
Hình 151 Cửa sổ Add New Project 279
Hình 152 Cửa sổ File System 280
Hình 153 Cửa sổ Add Project Output Group 280
Hình 154 Cửa sổ Icon 281
Hình 155 Cửa sổ Select Item in Project 281
Hình 156 Cửa sổ Add Files cho phép thêm các file cần thiết vào bộ cài đặt 282
Hình 157 Cửa sổ Property Pages 283
Hình 158 Cửa sổ Prerequisites 284
Hình 159 Kết quả thiết kế bộ cài đặt 285
Hình 160 Kết quả thực thi bộ cài đặt 285
Hình 161 Form quản lý phân công giảng dạy đã gắn menu 286
Hình 162 Form quản lý tài sản đã gắn menu 289
Hình 163 Form quản lý điểm đã gắn menu 293
Trang 9DANH MỤC BẢNG
Bảng 1 Bảng dữ liệu khách hàng 6
Bảng 2 Bảng dữ liệu mặt hàng 7
Bảng 3 Bảng chi tiết bán hàng 7
Bảng 4 Các hình thức tạo báo cáo bằng Crystal Report 151
Bảng 5 Các phần chính trên một báo cáo 152
Bảng 6 Danh sách các trường đặc biệt trong Crystal Report 190
Trang 10BÀI 1 SỬ DỤNG VB.NET LẬP TRÌNH TRÊN FORM
ĐỂ CẬP NHẬT 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 VB.NET lập trình trên form để thực hiện các thao tác cập nhật cơ sở dữ liệu: Nhập mới, thêm, xóa, sửa dữ liệu
- 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
Trang 11Hình 1 Form dạng bản ghi
- Dạng lưới hiển thị danh sách
Hình 2 Form dạng danh sách
- Dạng form một - nhiều
Trang 12Hình 3 Form dạng một nhiều
Đôi khi còn phối hợp các dạng này với nhau để tạo thành một dạng mới
Trên các form này thường có có các đối tượng:
Lable (Nhãn): là điều khiển cho phép người sử dụng hiển thị chuỗi ký tự trên
biểu mẫu nhưng không thể thay đổi chuỗi ký tự đó một cách trực tiếp
Textbox (Ô nhập liệu) là một điều khiển cho phép nhận thông tin do người sử dụng nhập vào Đối với ô nhập liệu ta cũng có thể dùng để hiển thị thông tin, thông tin này được đưa vào tại thời điểm thiết kế hay thậm chí ở thời điểm thực thi ứng dụng
Button: Nút lệnh là một điều khiển dùng để bắt đầu, ngắt hoặc kết thúc một quá trình.Người sử dụng luôn có thể chọn một nút lệnh nào đó bằng cách nhấn chuột trên nútlệnh đó Hoặc có thể nhấn Enter để chọn nút lệnh khi nút đó đang có Focus
Checkbox: Hộp kiểm hay còn gọi là hộp đánh dấu (Checkbox) là một điều khiển được hiểnthị dưới dạng một ô vuông Ô vuông này hiển thị dấu lựa chọn nếu như được chọn và đểtrắng nếu ô không được chọn Điều khiển Check box được dùng khi muốn nhận thôngtin từ người sử dụng theo kiểu Yes/No hoặc True/False Ta cũng
có thể gom nhiềuđiều khiển lại một nhóm (dùng công cụ Group box) để hiển thị nhiều khả năng lựachọn Khi một check box được chọn thì giá trị của nó là 1; ngược lại là 0
Trang 13Radio button: Công dụng của Radio button cũng tương tự như Checkbox Điểm khác nhau chủ yếu giữa hai loại điều khiển này đó là trong cùng một nhóm (được tạo bởi group boxhay picture box) tại mỗi thời điểm ta chỉ có thể chọn một radio button nhưng có thểđánh dấu chọn nhiều checkbox
Listbox: Điều khiển này hiển thị một danh sách các đề mục mà ở đó người sử dụng có thể chọn lựa một hoặc nhiều đề mục List Box giới thiệu với người sử dụng một danh sách các lựa chọn Một cách mặc định các lựa chọn hiển thị theo chiều dọc trên một cột vàbạn có thể thiết lập là hiển thị theo nhiều cột Nếu số lượng các lựa chọn nhiều vàkhông thể hiển thị hết trong danh sách thì một thanh trượt sẽ tự động xuất hiện trênđiều khiển
Combobox: Điều khiển Combobox có thể được xem là tích hợp giữa hai điều khiển Textboxvà ListBox Người sử dụng có thể chọn một đề mục bằng cách đánh chuỗi văn bản vàoCombobox hoặc chọn một đề mục trong danh sách
DataGridView: DataGridView là điều khiển chuyên dùng cho việc hiển thị dữ liệu dưới dạng bảng với rất nhiều chức năng như:
Có thể biểu diễn dữ liệu trên bảng trong Textbox, CheckBox hoặc DropDownList
Có khả năng sử dụng DataSource để kết nối với bất kì cơ sở dữ liệu nào, với bất kì bảng nào
Dữ liệu trên điều khiển được lưu sẵn trong bộ nhớ cache nên tăng tốc độ
xử lý mà vẫn đảm bảo khả năng xử lý hàng trăm bản ghi một lúc
DataGridView hoàn toàn có thể sử dụng với Data Binding giúp đơn giản hóa công việc kết nối dữ liệu
DataGridView là điều khiển dùng để hiển thị dữ liệu, do đó nó phải được kết nối với một nguồn dữ liệu Nguồn dữ liệu đó có thể được gán thông qua thuộc tính DataSource của DataGridView hoặc thông qua viết mã
Ngoài ra có thể còn có nhiều điều khiển khác cũng hay được sử dụng
Các điều khiền này dần dần được đề cập đến trong quá trình thực hành
Muốn điều khiển được các đối tượng trên form để thực hiện việc cập nhật dữ liệu, người sử dụng phải viết các đoạn mã lệnh nhằm thực hiện các thao tác tương ứng mong muốn Ví dụ muốn thực hiện thao tác thêm mới một bản ghi vào cơ sở dữ liệu
Trang 14thì phải viết đoạn mã thực hiện thao tác này, tương tự như thế người sử dụng sẽ viết các đoạn mã lệnh thực hiện các công việc cụ thể khác và gắn vào các sự kiện cho từng đối tượng cụ thể
Để xây dựng một form dùng để cập nhật dữ liệu cho một cơ sở dữ liệu bằng VB.NET, thực hiện các bước sau:
1 Thiết kế một form mới
2 Kết nối form với cơ sở dữ liệu
3 Đưa các điều khiển vào form
4 Đặt thuộc tính cho form và các điều khiển trên form
5 Lập trình cho các sự kiện thực thi các nhiệm vụ
Yêu cầu chương trình phải:
- 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
- Xem in được báo cáo 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
- Tạo bộ cài đặt cho ứng dụng để có thể cài đặt trên các máy tính
Để thực hiện yêu cầu của chủ cửa hàng, người lập trình đã thiết kế một cơ sở dữ liê ̣u quan hệ có lược đồ như sau:
tblKhachHang(MaKH, HoTen, GioiTinh, DiaChi, DienThoai)
tblMatHang(MaMH, TenMatHang, DVT)
tblBanHang(SoHieuHD, MaKH, NgayMuaBan, NguoiBan)
tblChiTietBanHang(SoHieuHD, MaMH, SoLuong, DonGia)
Trang 15DonGia: Đơn giá;
NgayMuaBan: Ngày mua bán
NguoiBanHang: Người bán hàng Người lập trình đã sử dụng hệ quản trị cơ sở dữ liệu SQL Server để tạo ra cơ sở
dữ liệu Quản lý bán hàng có tên là QLYBH.MDF đặt tại D:\VB.NET\QuanLyBanHang\Data\QLYBH.MDF và có cấu trúc như sau:
Bảng tblKhachHang
Bảng 1 Bảng dữ liệu khách hàng
Trang 16Bảng tblMatHang
Bảng 2 Bảng dữ liệu mặt hàng
Bảng tblBanHang
Bảng tblChiTietBanHang
Bảng 3 Bảng chi tiết bán hàng
Công việc 1: Do công việc phải thường xuyên làm việc với khách hàng và quản
lý các khách hàng của mình chủ cửa hàng yêu cầu nhà lập trình thiết kế một form dạng
Trang 17bản ghi có tên frmThongTinKhachHang thực hiện việc cập nhật dữ liệu cho bảng tblKhachHang theo mẫu sau:
Hình 4 Fom cập nhật thông tin khách hàng
Yêu cầu:
- Nhãn cập nhật khách hàng: Font Microsoft Sans Serif, chữ hoa, in đậm cỡ 18, căn giữa form
- Các nhãn Mã khách hàng, Họ và tên, Giới tính, Địa chỉ, Điện thoại là các label
có font: Microsoft Sans Serif, chữ thường, cỡ 9, các nhãn này có lề trái giống nhau
- Các điều khiển để nhập mã khách hàng, họ và tên, giới tính, địa chỉ, điện thoại
là các textbox, điều khiển lựa chọn giới tính là một combobox có 2 giá trị để lựa chọn
là Nam và Nữ, mặc định là Nam
- Các điều khiển:
+ Các nút điều hướng: cho phép chuyển tới bản ghi đầu tiên, bản ghi cuối cùng, bản ghi liền sau hoặc liền trước bản ghi hiện thời
+ Nút thêm: cho phép thêm một bản ghi mới
+ Nút xóa: cho phép xóa bản ghi hiện thời nếu người dùng đồng ý
+ Nút sửa: cho phép sửa thông tin của bản ghi hiện thời
+ Nút lưu: cho phép cập nhật các thông tin trên form vào cơ sở dữ liệu
+ Nút tìm kiếm: cho phép tìm kiếm theo mã khách hàng
Trang 18+ Nút thoát: cho phép đóng form hiện thời
Công việc 2: Do công việc phải thường xuyên làm việc với mặt hàng và quản lý
các mặt hàng trong cửa hàng của mình chủ cửa hàng yêu cầu nhà lập trình thiết kế một form dạng lưới có tên frmDanhSachMatHang để nhập dữ liệu cho bảng tblMatHang theo mẫu:
Hình 5 Form hiển thị và cập nhậtdanh sách mặt hàng
+ Nút thêm: cho phép thêm một bản ghi mới vào lưới
+ Nút xóa: cho phép xóa bản ghi hiện thời nếu người dùng đồng ý
+ Nút sửa: cho phép sửa thông tin của bản ghi hiện thời
Trang 19+ Nút lưu: cho phép cập nhật các thông tin trên lưới vào cơ sở dữ liệu
+ Nút thoát: cho phép đóng form hiện thời
Công việc 3: Để thực hiện việc bán hàng cho khách của mình chủ cửa hàng yêu
cầu nhà lập trình thiết kế một form dạng kết hợp bản ghi và lưới có tên frmBanHang
để nhập và hiển thị dữ liệu cho bảng tblBanHang theo mẫu:
Hình 6 Form cập nhật thông tin bán hàng
- Các điều khiển:
Trang 20+ Các nút điều hướng: cho phép chuyển tới bản ghi đầu tiên, bản ghi cuối cùng, bản ghi liền sau hoặc liền trước bản ghi hiện thời
+ Nút thêm: cho phép thêm một bản ghi mới
+ Nút xóa: cho phép xóa bản ghi hiện thời khi người sử dụng xác nhận xóa từ hộp thoại
+ Nút sửa: cho phép sửa thông tin của bản ghi hiện thời
+ Nút lưu: cho phép cập nhật các thông tin trên form vào cơ sở dữ liệu khi người sử dụng xác nhận xóa từ hộp thoại
+ Nút tìm kiếm: cho phép tìm kiếm theo số hiệu hóa đơn
+ Nút tìm: cho phép tìm theo mã khách hàng
+ Nút thêm khách hàng: cho phép mở cửa sổ chi tiết thông tin khách hàng + Nút thoát: cho phép đóng form hiện thời
1.2.2 Hướng dẫn thực hiện:
Công việc 1: Thiết kế form dạng bản ghi theo mẫu
1 Phân tích yêu cầu:
Theo yêu cầu trên thì phải có một form chứa:
- Các đối tượng có nội dung “THÔNG TIN KHÁCH HÀNG”, “Mã khách hàng”, “Họ và tên”, “Giới tính”, “Địa chỉ”, “Điện thoại” là các Label
- Các đối tượng ô nhập mã khách hàng, họ và tên, địa chỉ, điện thoại là các Textbox
- Đối tượng giới tính là một Combobox với 2 giá trị là Nam, Nữ
- Các nút “Thêm” “Xóa”, “Sửa”, “Lưu”, “Tìm kiếm”, “Thoát” là các Button
- Đối tượng để di chuyển trên các bản ghi là đối tượng BindingNavigator
2 Hướng dẫn thao tác
Như vậy, để thực hiện công việc thiết kế form dạng bản ghi có tên frmThongTinKhachHang theo yêu cầu, người lập trình thực các bước như sau:
1 Mở VB.NET
2 Tạo form mới
Trên thanh menu, chọn Project/Add New Item
Xuất hiện cửa sổ Add New Item Chọn loại Windows Form, sau đó nhập tên frmThongTinKhachHang vào ô Name rồi nhấn nút Add
Trang 21Hình 7 Cửa sổ Add New Item
3 Thiết lập kết nối với cơ sở dữ liệu QLYBH.MDF
Để tạo một kết nối với cơ sở dữ liệu QLYBH.MDF thì vào thực đơn Data chọn Add New Data Source cửa sổ Data Source Configuration Wizard xuất hiện
Hình 8 Cửa sổ Data Source Configuration Wizard
Trang 22Chọn biểu tượng Database và nhấn nút Next, cửa sổ Choose Data Source xuất
hiện, yêu cầu chọn kết nối cơ sở dữ liệu, nếu trước đó chưa tạo kết nối thì nhấn vào
New Connectionsau đó lựa chọn loại dữ liệu cần kết nối
Hình 9 Cửa sổ Change Data Source
Trang 23Hình 10 Cửa sổ Add Connection
Sau khi nhập các thông số kết nối và lựa chọn cơ sở dữ liệu cho báo cáo nhấn vào OK để xác nhận thông tin kết nối và chuyển qua cửa sổ Data Source Configuration Wizard
Trang 24Hình 11 Cửa sổ Data Source Configuration Wizard
Nhấn Next và để chuyển qua cửa sổ tiếp theo Lựa chọ loại đối tƣợng cơ sở dữ liệu nhƣ: Tables, Views, Store Procedures và Functions Nhập tên cho DataSet cần tạo
Hình 12 Hoàn thành việc kết nối với cơ sở dữ liệu
4 Thiết kế form theo mẫu và gắn các điều khiển với nguồn dữ liệu đã kết nối
a) Để tạo điều khiển label Thông tin khách hàng theo yêu cầu thực hiện:
Trang 25Kéo điều khiển Label từ của sồ Toolbox vào form Nháy phải chuột vào Label chọn Properties và thiết lập các thuộc tính cho Label này:
Text: THÔNG TIN KHÁCH HÀNG
Font name: Microsoft Sans Serif
Font size: 18
Font bold: True
Trên menu chọn Format/Center in form/Horizontally để căn giữa
Tiếp theo, trên thanh menu chọn Data / Show Data Source hoặc ấn tổ hợp phím Shift + Alt + D để bật cửa sổ Data Source
Từ cửa sổ Data Source chọn bảng tblKhachHang trong danh sách Nhấn vào mũi tên quay xuống bên phải của bảng tblKhachHang chọn Details để chuyển chế độ hiển thị bảng tblKhachHang sang dạng chi tiết từng bản ghi Nhấn vào mũi tên quay xuống bên phải của cột GioiTinh của bảng tblKhachHang và chọn dạng hiển thị là ComboBox
Nhấn chuột và kéo bảng tblKhachHang này vào form
Hình 13 Kết quả sau khi kéo bảng khách hàng vào form
Nháy phải chuột vào nhãn “Ma KH” chọn Properties và thiết lập các thuộc tính cho nhãn này:
Font name: Microsoft Sans Serif
Font size: 9
Các thuộc tính khác để mặc định
Trang 26Thực hiện tương tự để hoàn thành yêu cầu với các label như: Họ và tên, Giới tính, Địa chỉ, Điện thoại để thiết lập các thuộc tính về font name và font size
Nháy phải chuột vào textbox MaKHTextbox chọn Properties và thiết lập các thuộc tính cho textbox này:
Items: Collection (Nam/Nữ)
Kéo điều khiển Button từ cửa sổ Toolbox vào form Nháy phải chuột vào Button chọn Properties và thiết lập các thuộc tính cho Button này:
Name: ButtonThem
Font name: Microsoft Sans Serif
Font size: 9
Viết đoạn mã lệnh VB.NET trong sự kiện ButtonThem_Click như sau:
Private Sub ButtonThem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ButtonThem.Click
Trang 27Trong sự kiện ButtonXoa_Click viết mã lệnh nhƣ sau:
Private Sub ButtonXoa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonXoa.Click
If MessageBox.Show("Bạn có chắc chắn muốn xóa khách hàng này?",
Trang 28End If
End Sub
Trong sự kiện ButtonSua_Click viết đoạn mã lệnh sau:
Private Sub ButtonSua_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonSua.Click
If Not String.IsNullOrEmpty(MaKHTextBox.Text) Then
Trong sự kiện ButtonTimKiem _Click viết đoạn mã lệnh sau:
Private Sub ButtonTimKiem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
ButtonTimKiem.Click
If Not String.IsNullOrEmpty(MaKHTextBox.Text) Then
TblKhachHangBindingSource.Filter = "MaKH='" &
MaKHTextBox.Text & "'"
Trang 29Trong sự kiện ButtonLuu_Click viết đoạn mã lệnh sau:
Private Sub ButtonLuu_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles ButtonLuu.Click
'Đoạn mã này thực hiện việc kiểm tra dữ liệu ở ô mã khách hàng để quyết định thực hiện việc thêm mới một bản ghi hay cập nhật thông tin của bản ghi đã có
Trang 31Trong sự kiện ButtonThoat_Click viết đoạn mã lệnh sau:
Private Sub ButtonThoat_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ButtonThoat.Click
'Câu lệnh này để đóng form hiện tại
Me.Close()
End Sub
Điều khiển TblKhachHangBindingNavigator để thực hiện việc di chuyển trên các bản ghi của bảng tblKhachHang đƣợc VB.NET cung cấp sẵn, mặc định khi kéo bảng tblKhachHang từ cửa sổ Data Source vào form thì đối tƣợng TblKhachHangBindingNavigator cũng đƣợc thêm vào form chỉ việc kéo điều khiển này đặt vào vị trí theo yêu cầu
Chạy thử form để kiểm tra kết quả bằng cách nhấn vào phím F5 trên bàn phím hoặc vào Build chọn Run
3 Kết quả thiết kế
Hình 14 Kết quả thiết kế form thông tin khách hàng
Trang 324 Kết quả thực thi
Hình 15 Kết quả thực thi form thông tin khách hàng
Công việc 2: Thiết kế form cập nhật thông tin mặt hàng
Trang 33Hình 16 Form danh sách mặt hàng
1 Phân tích yêu cầu:
Theo mẫu trên thì phải có một form chứa:
- Các đối tượng có nội dung “THÔNG TIN KHÁCH HÀNG” là các Label
- Đối tượng hiển thị danh sách mặt hàng là DataGridView
- Các nút “Thêm” “Xóa”, “Sửa”, “Lưu”, “Tìm kiếm”, “Thoát” là các Button
- Đối tượng để di chuyển trên các bản ghi là đối tượng BindingNavigator
Trang 343 Chọn bảng tblMatHang từ cửa sổ Data Source và kéo vào form Điều chỉnh kích thước và vị trí của lưới cho phù hợp
Nháy phải chuột vào lưới, chọn Properties để thiết lập các thuộc tính cho lưới như sau:
Hình 17 Cửa sổ Edit Columns
Nhấn vào các cột ở khung Selected Columns bên trái và thay đổi giá trị HeaderText ở khung Bound Column Properties bên phải cho phù hợp với yêu cầu Nhấn OK để áp dụng tiêu đề cho các cột của lưới danh sách mặt hàng
Điều khiển TblMatHangBindingNavigator để thực hiện việc di chuyển trên các bản ghi của bảng tblMatHang được VB.NET cung cấp sẵn, mặc định khi kéo bảng tblMatHang từ cửa sổ Data Source vào form thì đối tượng TblMatHangBindingNavigator cũng được thêm vào form chỉ việc kéo điều khiển này đặt vào vị trí theo yêu cầu
Viết mã lệnh cho các điều khiển như sau:
Trang 35Mặc định khi kéo lưới vào form sẽ phát sinh mã trong sự kiện Load của form frmDanhSachMatHang như sau:
Private Sub frmDanhSachMatHang_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'QLYBHDataSet.tblMatHang' table You can move, or remove it, as needed
Trang 37If MessageBox.Show("Bạn có chắc chắn muốn xóa khách hàng này?",
"Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
Dim oldRegionRow As QLYBHDataSet.tblKhachHangRow
oldRegionRow =
QLYBHDataSet.tblKhachHang.FindByMaKH(Convert.ToInt32(MaKHTextBox.Text))
Private Sub ButtonSua_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles ButtonSua.Click
If Not String.IsNullOrEmpty(MaKHTextBox.Text) Then
Trang 38Private Sub ButtonTimKiem_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles ButtonTimKiem.Click
'Đoạn mã này thực hiện việc tìm kiếm khách hàng dựa theo mã khách hàng
If Not String.IsNullOrEmpty(MaKHTextBox.Text) Then
TblKhachHangBindingSource.Filter = "MaKH='" & MaKHTextBox.Text
Private Sub ButtonLuu_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles ButtonLuu.Click
If MaKHTextBox.Text = "" Then