Tải bản đầy đủ (.pdf) (112 trang)

luận văn công nghệ thông tin xây dựng chương trình thi trắc nghiệm bằng visual basic.net

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.39 MB, 112 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DÂN LẬP KỸ THUẬT CÔNG NGHỆ



LUẬN VĂN TỐT NGHIỆP
ĐỀ TÀI :

XÂY DỰNG CHƯƠNG TRÌNH THI TRẮC NGHIỆM
BẰNG VISUAL BASIC.NET

GVHD : NGUYỄN CHÁNH THÀNH
SVTH : NGUYỄN HỮU ĐỨC
NGUYỄN THỊ NGỌC ĐOAN
KHÓA : 98

TP. HỒ CHÍ MINH
2003

98TH056
98TH051


TRƯỜNG ĐẠI HỌC DÂN LẬP KỸ THUẬT CÔNG NGHỆ
KHOA CÔNG NGHỆ THÔNG TIN



LUẬN VĂN TỐT NGHIỆP
ĐỀ TÀI :


XÂY DỰNG CHƯƠNG TRÌNH THI TRẮC NGHIỆM
BẰNG VISUAL BASIC.NET

GVHD : NGUYỄN CHÁNH THÀNH
SVTH : NGUYỄN HỮU ĐỨC
; 98TH056
NGUYỄN THỊ NGỌC ĐOAN ; 98TH051
KHÓA : 98

TP. HỒ CHÍ MINH
2003


NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
….…………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….

…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….


NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
….…………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………

……………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………….


Lời Cảm Ơn
Chúng em xin chân thành cám ơn khoa Công Nghệ Thông Tin trường
ĐHDL Kỹ Thuật Công Nghệ đã tạo điều kiện cho chúng em thực hiện đề tài
này.
Thế là ba tháng đã trôi qua. Thời gian này thật là ngắn ngủi nhưng lại có ý
nghóa quyết định hơn cả bốn năm dài học tập. Chúng em xin được gửi lại nơi
đây lòng biết ơn sâu sắc đến thầy Nguyễn Chánh Thành và thầy Nguyễn Anh
Tuấn , người đã trực tiếp hướng dẫn chúng em thực hiện đề tài này trong suốt
thời gian qua. Sự tận tâm của Thầy là nguồn động lực to lớn giúp chúng em
hoàn thành đề tài một cách hiệu quả hơn . Đồng thời chúng em xin chân thành
cám ơn tất cả quý Thầy , Cô đã tận tình giảng dạy và trang bị cho chúng em

những kiến thức cần thiết trong suốt quá trình học tập tại trường.
Mặc dù đã cố gắng hoàn thành đề tài tốt nghiệp này với tất cả sự nổ lực
của bản thân, nhưng chúng em chắc chắn vẫn không tránh khỏi nhiều thiếu sót,
kính mong quý Thầy , Cô tận tình chỉ bảo để chúng em có thể rút ra được nhiều
kinh nghiệm quý báu cho bản thân.
TP. HCM , 06/05/2003
Sinh Viên thực hiện
Nguyễn Hữu Đức
Nguyễn Thị Ngọc Ñoan


Lời Nói Đầu
Chất lượng học tập của Học Sinh / Sinh Viên luôn là một vấn đề mà Bộ
Giáo Dục rất quan tâm . Để nâng cao chất lượng học tập Bộ Giáo Dục đã đưa
ra rất nhiều biện pháp , từ nâng cao chất lượng dạy của giáo viên , học của
Học Sinh / Sinh Viên đến việc cải cách chương trình dạy và rất nhiều biện
pháp khác nhưng có lẽ thi trắc nghiệm là một trong những biện pháp có hiệu
quả nhất vì nó là một lối thi đòi hỏi phải có một lượng kiến thức đầy đủ cùng
với sự thông minh và nhanh nhẹn của từng học sinh / sinh viên .
Vì những yêu cầu trên và cùng với một công nghệ hết sức mới hiện nay
trong lónh vực công nghệ thông tin là bộ .NET của Microsoft và SQL Server
2000 mà chúng em đã xây dựng nên chương trình Thi Trắc Nghiệm này với các
chức năng :
+ Quản trị dữ liệu đề thi .
+ Thực hiện chức năng thi trắc nghiệm trên máy cho người dùng
Mục đích của chương trình là:
+ Hổ trợ cho Giáo Viên thuận lợi trong việc soạn câu hỏi trắc nghiệm , soạn
đề thi trắc nghiệm .
+ Cho phép Giáo Vụ soạn đề thi trắc nghiệm , soạn bộ đề ra thi .
+ Tạo điều kiện dễ dàng và nhanh chóng cho Sinh Viên thi trắc nghiệm được

chính xác và công bằng .
Sau khi hoàn thành đề tài này chúng em mong được góp một phần công sức
của mình vào sự nghiệp đổi mới ngày một tiến bộ của Bộ Giáo Dục nói riêng
và xã hội nói chung , mặc dù chương trình của chúng em vẩn còn không ít thiếu
sót kính mong quý Thầy, Cô tận tình chỉ bảo để chúng em có thể rút ra được
nhiều kinh nghiệm quý báu cho bản thân .


Mục Lục
PHẦN I. TÌM HIỂU NGÔN NGỮ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
CHƯƠNG 1 : TÌM HIỂU NGÔN NGỮ VISUAL BASIC.NET. . . . . . . . . . . . 1
I. Tổng quan về VisualBasic.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1. Giới thiệu Visual Basic.NET
............................... 1
2. Những nét mới trong Visual Basic.NET . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Làm việc với các bộ xử lý loãi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4. Làm việc với Crystal Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5. Trình duyệt Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6. Tạo ứng dụng Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7. Web Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
8. Xây dựng Help Online . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
II. Tìm hiểu cơ cấu .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1. Tham khaûo sơ lược về .NET Framework . . . . . . . . . . . . . . . . . . . . . . . 20
2. Tìm hieåu CLR
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3. Siêu dữ kiện Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4. Quá trình thực thi cuûa CLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5. Lập trình trong môi trường .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6. Làm việc với các công cụ .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25

III. Kiểu dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
1. Đối tượng và tập hợp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
2. Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3. Các kiểu dữ liệu thường dùng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
4. Sử dụng các chuổi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5. Kiểu dữ liệu Double . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
6. Làm việc với Date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
7. Sử dụng các giá trị Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8. Taïo Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
9. Làm việc với Enumeration
.................................
29


IV. Thủ tục , hàm và biểu thức logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
1. Tìm hiểu về biến . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2. Chuyển thông tin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3. Cách xây dựng logic cho chương trình . . . . . . . . . . . . . . . . . . . . . . . . . .
32
V. Ứng Dụng cơ sở dữ liệu
...................................
34
1. Thế nào là cơ sở dữ lieäu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34

2. Thiết cơ sở dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
3. Trình bày cấu trúc cơ sở dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
VI. Truy caäp CSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1. ADO so với ADO.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2. Đối tượng ADO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3. Giới thiệu ADO.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
CHƯƠNG 2 : TÌM HIỂU NGÔN NGỮ SQL SERVER 2000 . . . . . . . . . . . . 41
I. SQL Server là gì ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
II. Tạo một Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
1. Taïo Database. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2. Đổi teân Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3. Huûy Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
III. Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1. Các loại dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2. Tạo một bảng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3. Sửa cấu trúc bảng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4. Xoùa một bảng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5. Thuộc tính Identity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6. Sử dụng kiểu dữ liệu Uniqueidentifier và hàm Newid . . . . . . . . . . . .
46
7. Nhập một mẩu tin mới vào table . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
8. Xóa dữ lieäu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
IV. Raøng buộc toàn vẹn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
1. Các loại ràng buột toàn veïn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46



2. Xóa một ràng buột . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3. Giá trị mặc nhiên . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
4. Check constrait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5. Primary Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6. Unique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7. Foreign Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
V. Truy vấn dữ liệu bằng phát biểu SELECT . . . . . . . . . . . . . . . . . . . . . . . .
49
1. Câu lệnh Select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2. Biến đổi dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
3. Chuyển đổi dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4. Tương quan dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5. Làm việc với các truy vấn con . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
6. Phaùt bieåu Select … Into . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
7. Toán tử Union . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
VI. Hieäu chỉnh dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
1. Chèn dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2. Xóa dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3. Cập nhật dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
VII. Sử dụng các phần mở rộng của Transact-SQL . . . . . . . . . . . . . . . . . . . . 55
1. Sript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2. Các thành phần của ngôn ngữ Control-of-flow . . . . . . . . . . . . . . . . . . 55
VIII. Tạo chỉ mục . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
IX. Tạo View, trigger, store procedurevà function . . . . . . . . . . . . . . . . . . . 56
1. Tạo và thao tác treân View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56
2. Làm việc với các thủ tục lưu trữ hệ thống . . . . . . . . . . . . . . . . . . . . . .
56
3. Làm việc với Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4. Làm việc với các hàm do người dùng định nghóa . . . . . . . . . . . . . . . . 57
PHAÀN II. PHÂN TÍCH THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRÌNH
I. Phân tích chương trình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59


1. Đặt tả sơ lược hệ thống xây dựng chương trình Thi Trắc Nghiệm . . .
59
2. Phân tích hệ thống Thi Trắc Nghiệm bằng Rational Rose . . . . . . . . . 60
3. Chọn mô hình cài đặt về cơ sở dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . 77
II. Thiết kế chương trình
.......................................
77
1. Mô tả các table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
2. Ràng buột toàn vẹn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3. Sơ đồ quan heä ERD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
III. Cài đặt chương trình. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
PHAÀN III. TỔNG KẾT
I. Nhận xét chung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
1. Đánh giá kết quả của chương trình . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
2. Hạn chế của chương trình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
II. Hướng phát triển chương trình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
III. Kết luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Tài liệu tham khảo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101


Luận Văn Tốt Nghiệp : Xây Dựng Chương Trình Thi Trắc Nghiệm Bằng VB.NET


PHẦN I. TÌM HIỂU NGÔN NGỮ
CHƯƠNG 1 : TÌM HIỂU NGÔN NGỮ VISUAL BASIC.NET
I. TỔNG QUAN VỀ VISUAL BASIC.NET :
1. Giới thiệu VISUAL BASIC.NET :
Sự phát triển của công nghệ thông tin chủ yếu dựa trên các phát triển về
công nghệ phần cứng và phân mềm . Trong những năm gần đây , các linh kiện
máy tính ngày càng mạnh , tốc độ xử lý ngày càng cao , giá thành ngày càng
rẽ. Công nghệ phần mềm đáp ứng các phát triển đó một cách tích cực , các
trình ứng dụng cung cấp nhiều tính năng mới , đặc biệt là tính tin cậy , tính dễ
sử dụng và năng lực xử lý cao .
Sự phát triển phần mềm dựa trên nền tảng ngôn ngữ lập trình . Lập trình
hướng đối tượng là một trong những hướng phát triển mới , bao quát các trình
ứng dụng thực tiển trên máy tính và trên mạng . Nhiều khái niệm , kỹ thuật và
tính năng mới xuất hiện trong ngôn ngữ lập trình hướng đối tượng .
Một trong những ngôn ngữ lập trình hướng đối tượng hiện nay là Visual
Basic .NET của Microsoft . Đặc điểm nổi bậc của ngôn ngữ lập trình này là
khả năng xây dựng các đối tượng có tính tương thích cao . Đối tượng được xây
dựng trong VB.NET có thể được dùng một cách dễ dàng trong mọi ngôn ngữ
hướng đối tượng khác và ngược lại . Đối tượng không chỉ được dùng cho trình
ứng dụng tại chổ mà còn có thể được dùng trên mạng một cách rộng rãi . Các
đối tượng được xây dựng dựa trên các đơn vị mã tiêu chuẩn , được viết sẳn .
Các đơn vị mã đó sắp xếp theo module . Với các module bạn có thể lắp ghép
và chỉnh sửa để có trình ứng dụng theo các yêu cầu cụ thể . Bạn có thể lắp ráp
máy tính cá nhân từ các linh kiện rời và với OOP bạn có thể viết trình ứng
dụng từ các module rời .
Với phiên bản của Visual Basic.NET , bạn có thể sử dụng các hàm , thuộc
tính và các công cụ khi tạo một ứng dụng , ngay cả khi bạn đã sử dụng Visual
Basic 5 hoặc Visual Basic 6 thì phiên bản Visual Basic mới cũng có khá nhiều
khác biệt nhỏ . Tuy nhiên , Microsoft đã tăng thêm cho bạn nhiều điều khiển ,

thêm vào một vài lệnh mới và giới thiệu mô hình thiết kế mới tạo các chương
trình ứng dụng trên Web hoặc Windows từ ngay trong môi trường Visual
Basic.NET
Thay đổi lớn nhất diễn ra chủ yếu trong lónh vực truy cập trên Web và khả
năng chuyển ứng dụng trên Windows sang Internet . Bạn có thể làm điều này
bằng cách sử dụng cơ cấu .NET. Visual Basic.NET cung cấp cho bạn nhiều

GVHD : Nguyễn Chánh Thành

Trang 1


Luận Văn Tốt Nghiệp : Xây Dựng Chương Trình Thi Trắc Nghiệm Bằng VB.NET

công cụ để tạo những ứng dụng có thể chạy được trên Web cùng với xây dựng
những ứng dụng chuẩn cũ của Windows .
Cứ mỗi phiên bản mới của Visual Basic ta lại phát hiện ra được những cách
mới và tốt hơn của việc thể hiện các phương thức căn bản hoặc thêm những
phương thức mới vào ứng dụng . Visual Basic.NET có nhiều thuộc tính hơn ,
thậm chí có thể phát triển ứng dụng dễ dàng hơn . Một thay đổi là việc hổ trợ
thiết kế form . Bạn có thể sử dụng hai loại form khác nhau : một form cho ứng
dụng căn bản trên windows và một form cho ứng dụng cơ bản trên web. Thay
đổi chủ yếu khác của ngôn ngữ Visual Basic là khả năng tạo điều khiển xử lý
lỗi , sử dụng phương thức mới để kiểm tra lỗi .

2. Những nét mới trong VISUAL BASIC.NET
Visual Basic.NET là phiên bản mới tiếp của Visual Basic . Microsoft đã
thiết kế lại các sản phẩm nhằm tạo sự dễ dàng hơn trước đây trong việc viết
các ứng dụng phân tán , như Web . Visual Basic.NET có hai phần hổ trợ cho
việc tạo form ( Windows forms và Web form) và một phiên bản mới của ADO

về truy cập nguồn dữ liệu . Hơn nữa , nóù thể hiện đa ngôn ngữ lập trình , loại
bỏ những cái cũ , vô hiệu hóa các từ khóa không hữu ích cùng với rất nhiều
những thay đổi khác .
Các thuộc tính mới này sẽ cho phép bạn tạo cả ứng dụng Client/Sever và
ứng dụng Internet . Với Web Form và ADO.NET , bây giờ bạn có thể nhanh
chóng phát triển các Web Site . Với việc thêm vào các khả năng kế thừa , ngôn
ngữ Visual Basic giờ đây là môi trường lập trình hướng đối tượng : Các giao
diện trên Windows hỗ trợ các khả năng truy cập và kế thừa rất hiệu quả . Cuối
cùng việc cài đặt và thực thi không cần phải đăng ký với Registry gì cả .
Visual Basic.NET tích hợp đầy đủ với những ngôn ngữ Microsoft Visual
Studio .NET . Bạn không chỉ có thể phát triển các thành phần của ứng dụng
bằng các ngôn ngữ lập trình khác , các lớp của bạn cũng có thể thừa hưởng từ
các lớp được viết bằng các ngôn ngữ khác sử dụng tính năng kế thừa đa ngôn
ngữ . Với trình bắt lỗi , bạn có thể bắt lỗi nhiều ứng dụng với các ngôn ngữ
khác nhau cho chương trình đang thi hành cục bộ hoặc từ các máy truy cập từ
xa . Bất cứ ngôn ngữ nào bạn sử dụng , cơ cấu Microsoft .NET cũng cung cấp
một tập hợp API cho việc sử dụng trên Windows và cả trên Internet .
2.1 Những thay đổi với bản thân ngôn ngữ Visual Basic :
Những phiên bản trước đây của Visual Basic hướng đến những ứng dụng
Client chuẩn , trọng tâm của Visual Basic.NET với việc tạo các ứng dụng dịch
vụ Web cũng tốt như các ứng dụng Client chuẩn trên Windows . Việc này được
thực hiện bởi các chương trình quản lý mã chung cho cơ cấu .NET Framework

GVHD : Nguyễn Chánh Thành

Trang 2


Luận Văn Tốt Nghiệp : Xây Dựng Chương Trình Thi Trắc Nghiệm Bằng VB.NET


và bộ diễn dịch ngôn ngữ thông dụng – Common Language Runtime . Đương
nhiên , nó yêu cầu phải có những thay đổi lớn đối với ngôn ngữ Visual Basic.
Với những thay đổi chính đòi hỏi phải tạo ra một bộ khung .NET Framework
và thư viện Runtime mới , Microsoft nghó rằng đây cũng chính là cơ hội tốt để
xóa sạch những khía cạnh lỗi thời của ngôn ngữ Visual Basic . Microsoft có ý
định thay đổi để thực hiện những điều sau đây :
+ Đơn giản hóa ngôn ngữ và làm cho chúng phù hợp hơn .
+ Thêm vào những tính năng mới theo yêu cầu .
+ Tạo ra những chương trình nguồn dễ đọc và dễ bảo vệ hơn .
+ Phát triển những tiến trình xử lý lỗi .
+ Tạo các ứng dụng dễ bắt và gỡ lỗi .

2.2 Giao diện Windows Forms mới :
Windows Forms là một phần của cơ cấu .NET Framework với nhiều kỹ
thuật mới bao gồm một cơ cấu ứng dụng thường , quản lý môi trường thực thi ,
bảo mật và hướng đối tượng . Windows Forms cũng đưa ra đầy đủ những hổ trợ
cho việc nhanh chóng và dễ dàng để kết nối với dịch vụ Web XML , xây dựng
nên những ứng dụng nhận biết dữ liệu được tạo cơ bản trên ADO.NET . Với
môi trường phát triển chia xẻ với Visual Studio , các nhà phát triển có thể tạo
ra các ứng dụng Windows Forms bằng bất kỳ ngôn ngữ nào có hổ trợ nền .NET
.
Bạn có thể tạo một ứng dụng Windows Forms như cách bạn đã làm trong
phiên bản trước của Visual Basic : Đặt các điều khiển ở một vị trí trên form
thay đổi thuộc tính cho chúng và nhấp đúp vào điều khiển để mở Source Editor
.

2.3 Visual Inheritance :
Visual Inheritance là một tính năng mới của Windows Forms sẽ thúc đẩy
các nhà phát triển hoàn thành sản phẩm và dễ dàng sử dụng lại các chương
trình nguồn ( source code ) cũ . Chẳng hạn , bạn có thể định nghóa một giao

diện chuẩn có chứa các phần tử như trình đơn ( menu ) hay là thanh công cụ
(toolbar) Bạn có thể sử dụng form này trong những ứng dụng khác thông qua
kế thừa và mở rộng nó đáp ứng các yêu cầu của những ứng dụng đặc biệt ,
hãy chú trọng đến giao diện cho người dùng thông thường và giảm bớt công
sức làm việc không phải tạo lại các form tương tự .

2.4 Thiết kế một form chính xác :
Với Windows Forms mới , những tính năng như Menu Designer , Anchoring ,
Docking và nhiều điều khiển khác có thể mạnh hơn và hợp cho các nhà phát
triển xây dựng giao diện người dùng trên Windows hơn . Windows Forms cung

GVHD : Nguyễn Chánh Thành

Trang 3


Luận Văn Tốt Nghiệp : Xây Dựng Chương Trình Thi Trắc Nghiệm Bằng VB.NET

cấp cho bạn tập hợp các kỹ thuật xây dựng ứng dụng cơ bản trên Windows . Có
những điều khiển và thuộc tính mới tốt cho việc hòa hợp các giao diện người
dùng ; Windows Forms cũng cung cấp thuộc tính bảo mật .

2.5 Giao diện Web ( Web form ) :
Web Form được tạo để chỉ định sự khác biệt giữa những kỹ thuật được sử
dụng để xây dựng một ứng dụng trên Windows và chúng được sử dụng để tạo
một ứng dụng trên Web . Với Visual Basic .NET , bạn có thể nhanh chóng phát
triển ứng dụng để chạy được trên Internet bằng những kỹ thuật tương tự mà
bạn đã được học ở Visual Basic . Để tạo một ứng dụng trên Web , bạn thêm
một Web Form vào dự án , kéo thả các điều khiển (control) cần thiết vào trang
. Dấu mã chương trình tách biệt khỏi mã HTML.

Các phiên bản trước đây của công cụ Visual Studio đã cố gắng đơn giản hóa
công việc phát triển trên Web . Ví dụ , Visual Basic đã cung cấp hỗ trợ cho
DHTML Client và WebClasses ; Visual InterDev phục vụ cho phát triển ASP
(Active Server Pages ). Web Form đưa ra những giải pháp làm việc hữu dụng
hơn để xây dựng ứng dụng Web với Visual Basic .NET . Web Form mô tả sự
biến đổi của ASP và Web Classes , cung cấp cách tốt nhất cho cả hai mô hình .

2.6 Chuyển biến từ Visual Basic 6 :
Tên thì gần gũi với Visual Basic 6.0 (VB6.0), nhưng Visual Basic.NET
(VB.NET) lại là phiên bản có nhiều thiết kế mới về kiểu dữ liệu , phương thức
truy cập dữ liệu , tính hướng đối tượng …
Tại sao lại phải thay đổi thiết kế của ngôn ngữ Visual Basic – một trong
những ngôn ngữ được sử dụng rộng rãi nhất hiện nay ? VB 6.0 được hàng triệu
thảo chương viên trên khắp thế giới sử dụng nhờ cú pháp dễ hiểu và khả năng
phát triển nhanh . VB 6.0 và các công cụ khác của Microsoft tích hợp trong
phiên bản đầu tiên của bộ Visual Studio đã được thiết kế không tính đến Web .
Do chậm chân trong lónh vực công nghệ Internet và ứng dụng phân tán ,
Microsoft đã phải bổ sung”chắp vá” cho bộ công cụ Visual Studio để hổ trợ
môi trường phát triển mới . Khả năng phát triển ứng dụng Web của các công cụ
Visual Studio rất hạn chế , phải dùng nhiều kỹ thuật khác nhau để tạo ứng
dụng phân tán , không tối ưu cho môi trường Web.
VB.NET giải quyết tất cả các vấn đề trên . Bộ công cụ này đã được thiết kế
lại từ đầu để hổ trợ phát triển dễ dàng ứng dụng Web và Client/Server trong
môi trường phân tán và không kết nối . Khác biệt giữa VB 6.0 và VB.NET có
thể phân thành hai nhóm ( như bảng 1 ) :
+ Thay đổi về kỹ thuật cải thiện hiệu suất ứng dụng .
+ Thay đổi trong cú pháp và cách thức lập trình.

GVHD : Nguyễn Chánh Thành


Trang 4


Luận Văn Tốt Nghiệp : Xây Dựng Chương Trình Thi Trắc Nghiệm Bằng VB.NET

Bảng 1
VB 6.0 > < VB. NET
Tính năng VB 6.0
VB.NET
Tính kế
Thực hiện phương pháp kế Thực hiện kế thừa đầy đủ các lớp
thừa đầy đủ thừa giả .
con riêng dẫn xuất các thuộc tính
và phương thức từ lớp cơ bản được
viết bằng ngôn ngữ .NET C++ hay
C#.
Khả năng
Dùng các biến khác với Các kiểu biến nhất quán với C++
tương tác
C++ và Java , làm cho các và C# trên nền CLR.
ứng dụng viết bằng VB và
C++ khó tương tác với
nhau
Tạo ứng
Tạo tập tin .EXE nhưng lệ Tạo tập tin .EXE có thể chạy
dụng
thuộc vào các thư viện không cần đến các thư viện DLL
DLL hỗ trợ . Việc triển hỗ trợ .
khai khó khăn vì phải phân
phối không chỉ tập tin

.EXE mà cả các thư viện
DLL.
Phân luồng Không thể tận dụng hết Cho phép phân luồng linh động ,
các tính năng phân luồng tăng tính khả mở cho ứng dụng .
có trong .COM

2.6.1 Thay đổi về kỹ thuật :
Thay đổi kỹ thuật trong VB.NET là yếu tố dẫn đến thay đổi cú pháp và
cách thức lập trình ; xuất phát từ mục tiêu kỹ thuật mà Microsoft hướng đến
trong phiên bản của VB . Để VB thống nhất về mặt kỹ thuật với C++ và C# ,
Microsoft đã phát triển CLR (Common Language Runtime) thành nền tảng
chung . VB không còn là công cụ sinh mã giả nữa , CLR làm cho nó trở thành
ngôn ngữ hướng đối tượng thực sự và đặt nó ngang cấp với C++ và C# . Về mặt
kỹ thuật , một ứng dụng được tạo bởi VB.NET không có gì khác biệt so với ứng
dụng tạo bằng C++ và C#.

2.6.2 Thay đổi về cú pháp :
Tuy những thay đổi về mặt kỹ thuật trong VB.NET cực kỳ quan trọng ( và
rất được hoan nghênh ) nhưng lại không dễ nhận biết như những thay đổi trong
cú pháp và cách thức lập trình . Chúng ảnh hưởng nhiều đến khả năng chuyển

GVHD : Nguyễn Chánh Thành

Trang 5


Luận Văn Tốt Nghiệp : Xây Dựng Chương Trình Thi Trắc Nghiệm Bằng VB.NET

đổi ứng dụng VB 6.0 sang VB.NET . Trong bộ công cụ Studio.NET , Microsoft
có cung cấp tiện ích Upgrade Winzard để chuyển đổi ứng dụng VB 6.0 sang

VB.NET.

2.6.3 Thay đổi về kiểu dữ liệu :
VB.NET đã nói lời chia tay với kiểu dữ liệu Variant , Short và Long .
VB.NET kết hợp kiểu dữ liệu Object và Variant thành kiểu dữ liệu Object duy
nhất . Variant là kiểu dữ liệu mặc định của VB 6.0 được gán cho tất cả các
biến không được khai báo kiểu dữ liệu . Kiểu Variant còn được gán cho các
biến ngoài biến đầu tiên trên cùng một dòng khai báo . Khai báo biến ipCount
là Integer và ipNumber là Variant . Khai báo dữ liệu Integer giờ đây là Short
(16 bit) và kiểu dữ liệu Long là Integer (32 bit) . Kiểu Long giờ đây là số 64 bit
. Tiện ích Upgrade Winzard thực hiện rất tốt việc thay các dữ liệu này .

2.6.4 Cú pháp cũ bị loại bỏ :
Để đảm bảo tính tương thích ngược , các phiên bản VB trước đây có chứa cú
pháp cũ thể hiện các kỹ thuật lập trình xa xưa . Các từ khóa trong bảng 2 đã bị
loại bỏ khỏi VB.NET.
Def < data type > ( DefInt , DefBool , DefByte , … )
GoTo
GoSub
Option Base 0 | 1
VarPtr , ObjPtr , StrPtr
Lset
Baûng 2 : Các từ khóa VB 6.0 không còn được hỗ trợ trong VB.NET.

2.6.5 Chuyển biến từ Visual Basic 6 :
Visual Basic .NET là nền tảng cơ bản , từ việc phát triển ứng dụng Windows
đến việc xây dựng ứng trên Web . Vì lý do này , chương trình của bạn cần được
nâng cấp để khai thác hết những thuận lợi của Visual Basic .NET . Microsoft
cung cấp công cụ Upgrade Winzard ( nâng cấp theo sự hướng dẫn từng bước )
để giúp bạn thi hành tác vụ này . Khi bạn mở một dự án của Visual Basic 6

trong Visual Basic .NET , Upgrade Wizard sẽ chạy tự động và tạo ra một dự án
mới của Visual Basic .NET được lấy từ dự án đang có của bạn . Khi dự án của
bạn đã nâng cấp , ngôn ngữ được chỉnh sửa lại vì những thay đổi cú pháp và
các form Visual Basic 6 được chuyển thành Windows Forms . Trong hầu hết
các trường hợp bạn sẽ phải tự làm một số thay đổi trong mã của bạn mỗi khi
nâng cấp vì các đối tượng và các thuộc tính ngôn ngữ hoặc không có sự tương
đương trong Visual Basic .NET . Sau khi nâng cấp , có thể bạn cũng muốn hiệu
chỉnh ứng dụng của mình để khai thác các mặt thuận lợi của một số tính năng

GVHD : Nguyễn Chánh Thành

Trang 6


Luận Văn Tốt Nghiệp : Xây Dựng Chương Trình Thi Trắc Nghiệm Bằng VB.NET

mới hơn trong Visual Basic .NET . Upgrade Wizard bắt đầu khi bạn mở một
ứng dụng VB 6 . Nó sẽ hỏi bạn về kiểu của dự án và tập hợp các chọn lựa cho
ứng dụng .
Bước tiếp theo là chỉ ra nơi bạn muốn lưu trữ dự án .NET mới . Nên nhớ rằng
dự án nguyên bản của bạn sẽ không được hiệu chỉnh . Mỗi lần hoàn thành , dự
án mới sẽ được mở lại trong cửa sổ Solution Explorer . Bạn có thể cho hiển thị
Upgrade Report để xem những gì hữu dụng mà bạn cần trong quá trình nâng
cấp dự án .

3. Làm việc với các bộ xử lý lỗi :
Không có gì tốt đẹp mãi mãi , chương trình của bạn sẽ đến lúc phát sinh lỗi
chẳng hạn chương trình bị treo , ỗ đóa sẽ ngưng hoạt động các tập tin sẽ bị xóa
… Những vấn đề như thế chính là lỗi khi chạy chương trình . Lỗi trong lúc chạy
chương trình được chia làm hai loại : một là những lỗi được nhận dạng và sửa

ngay trước khi ứng dụng được đưa đến người sử dụng và một là những lỗi phải
được xử lý trong khi chương trình đang chạy .

3.1 Tìm hiểu các kiểu lỗi :
3.1.1 Tổng quan về lỗi :
Lỗi là các vấn đề về lập trình xảy ra trong khi thiết kế , tạo và kiểm tra qua
từng giai đoạn phát triển ứng dụng . Có bốn kiểu lỗi khác nhau :
a. Lỗi cú pháp :
Lỗi cú pháp được giải quyết trong trình soạn thảo (Code Editor) . Nếu đoạn
mã của bạn có một dòng không đúng , Code Editor sẽ báo cho bạn trước khi
bạn tiếp tục và sau đó thậm chí sẽ hiển thị cú pháp của câu lệnh mà bạn đang
sử dụng với các thuộc tính , phương thức hoặc sự kiện giúp bạn có thể sử dụng
trên dòng đó . Điều này cho phép bạn tập trung nhiều vào tính logic của ứng
dụng hơn là bạn phải tự nhớ và đánh vào lệnh . Tuy nhiên , khi bạn đã sửa
xong một lỗi cú pháp , thì nó sẽ không xuất hiện nữa .
b. Lỗi biên dịch :
Lỗi này sẽ xuất hiện khi đoạn mã của bạn không hợp với cấu trúc lệnh chuẩn
của VB. Hơn nữa , lỗi biên dịch được hiển thị khi bạn biên dịch ứng dụng , cho
phép bạn sửa chữa và sau đó bỏ qua .
c. Lỗi logic
Là lỗi khó tìm nhất trong ứng dụng vì khi ứng dụng thực thi sẽ không báo lỗi
gì cả . Tuy nhiên , ứng dụng có thể sẽ không xử lý và cho kết quả như mong
muốn .
d. Lỗi khi chạy chương trình :
Thường xuất hiện rơi vào một trong những vấn đề sau :

GVHD : Nguyễn Chánh Thành

Trang 7



Luận Văn Tốt Nghiệp : Xây Dựng Chương Trình Thi Trắc Nghiệm Bằng VB.NET

+ Lỗi tập tin : Lỗi tập tin thường xảy ra vì thông số tập tin không thích hợp
khi được xử lý bởi ứng dụng . Thông thường người sử dụng có thể sửa những lỗi
này và ứng dụng có thể tiếp tục từ khi lỗi được sửa. Dưới đây là bảng mã lỗi về
tập tin .
Mã lỗi

Thông báo lỗi

52
Bad filename or number
53
File not found
54
Bad fiel mode
55
File already open
58
File already exists
59
Bad record length
61
Disk full
62
Input pas end of file
63
Bad record number
64

Bad filename
67
Too many files
74
Can’t rename with different drive
75
Path/File access error
76
Path not found
+ Lỗi vật lý : Nhóm lỗi thông thường này được gây ra bởi môi trường vật lý
hoặc phần cứng của máy tính . Người dùng có thể hoặc không thể sửa những
lỗi này một cách nhanh chóng .
+ Lỗi đoạn mã : Người sử dụng không thể sửa lỗi của đoạn mã . Cách tốt
nhất để giải quyết những lỗi này là tạo một thông báo cho người dùng và thoát
khỏi chương trình . Sau khi bạn có thông tin này bạn phải tìm ra vấn đề trong
đoạn mã ứng dụng , sửa nó , biên dịch lại và sau đó thực thi lại ứng dụng .
+ Lỗi CSDL : Lỗi này xảy ra khi quan hệ đến dữ liệu , bao gồm những lỗi
có quan hệ đến kiểu dữ liệu hoặc kích thước file : sự hạn chế truy cập bảng dữ
liệu, nhân bản hoặc không cho phép sửa dữ liệu được thêm vào CSDL . Những
lỗi liên quan đến SQL hoặc một mẩu tin trắng mà đúng ra là không được rỗng .

3.1.2 Tiến trình xử lý lỗi :
Khi bạn bắt đầu nghó về việc tạo một chương trình xử lý lỗi cho ứng dụng
của mình , hãy hiểu rằng các điều khiển lỗi trong VB không dễ hiểu như trong
phiên bản cũ , được viết bởi nhiều ngôn ngữ như COBOL , BASIC . Điều đó
đúng so với một số nguyên nhân sau :
+ Visual Basic là mô hình hướng sự kiện , nghóa là mỗi sự kiện xảy ra sẽ triệu
gọi một tác vụ thực thi nào đó .
GVHD : Nguyễn Chánh Thaønh


Trang 8


Luận Văn Tốt Nghiệp : Xây Dựng Chương Trình Thi Trắc Nghiệm Bằng VB.NET

+ Visual Basic sử dụng ngăn xếp để theo dõi chương trình đang được xử lý và
để tách những biến cục bộ trong chương trình . Khi ứng dụng của bạn có một
chương trình con , nó có thể làm mất giá trị của biến cục bộ . Điều này sẽ làm
cho quá trình thực thi rất khó tiếp tục lại sau khi lỗi được giải quyết xong.
+ Tất cả các lỗi đều là cục bộ . Nếu một lỗi phát sinh , nó nên được xử lý trong
chương trình con nơi mà lỗi xảy ra , nghóa là bạn phải viết một điều khiển lỗi
cho chương trình xử lý mà bạn cần thêm vào ứng dụng của mình .

3.1.3 Quá trình xử lý lỗi không cấu trúc :
Quá trình xử lý lỗi không có cấu trúc là cách gọi mới của tiến trình cũ .
Phương pháp cũ của việc kiểm tra lỗi trong VB là sử dụng câu lệnh On Error
and Resume . Câu lệnh On Error bật chế độ kiểm tra lỗi cho một procedure
hoặc một module và sau đó chuyển sự thực thi của chương trình đến đoạn lỗi
được xác định trong câu lệnh On Error . Đoạn lỗi sau đó kiểm tra xem lỗi gì
xảy ra để xử lý cho phù hợp .
 Câu lệnh On Error :
Với câu lệnh On Error bạn có thể kích hoạt và vô hiệu hóa các bẫy lỗi trong
ứng dụng , chỉ định vị trí của chương trình xử lý lỗi để thực thi cho một chương
trình hoặc một form đã cho. Câu lệnh On Error bao gồm 3 phân loại khác nhau
:
+ On Error Goto (Label) kích hoạt chương trình xử lý lỗi tại vị trí một nhãn
(label) chỉ định trong câu lệnh . Nếu một lỗi xuất hiện trong khi chương trình xử
lý lỗi được kích hoạt , điều khiển sẽ nhảy đến dòng đầu tiên của đoạn mã trong
chương trình xử lý lỗi . Đây là cách chung nhất khi sử dụng câu lệnh On Error.
+ On Error Resume Next gởi điều khiển đến câu lệnh ngay chổ xảy ra lỗi .

Với phương pháp này bạn có thể bẫy một lỗi và ứng dụng có thể bỏ qua nó một
cách đơn giản .
+ On Error Goto 0 làm mất hiệu lực chương trình điều khiển lỗi trong thủ tục
procedure hiện hành . Bạn có thể sử dụng câu lệnh này để tạm thời làm cho
chương trình xử lý lỗi trong procedure không hoạt động . Sau đó bạn cần phải
thực thi bản đầu tiên hoặc thứ hai của câu lệnh để kích hoạt lại chương trình xử
lý lỗi . Khi bạn thêm một chương trình xử lý lỗi vào một procedure xử lý sự
kiện hoặc vào chương trình con hoặc function mà bạn tạo ra , nó nên được đặt
vào cuối của chương trình . Bạn cũng cần đặt một câu lệnh Exit Sub để thoát
khỏi chương trình nếu điều khiển thực thi đến dòng cuối của chương trình .
 Câu lệnh Resume :

GVHD : Nguyễn Chánh Thành

Trang 9


Luận Văn Tốt Nghiệp : Xây Dựng Chương Trình Thi Trắc Nghiệm Bằng VB.NET

Nếu có một lỗi được bẫy bằng một chương trình xử lý lỗi và điều khiển được
gởi đến chương trình xử lý lỗi , cách duy nhất để làm mất hoạt động và quay lại
từ chương trình là thực thi một trong ba dạng câu lệnh Resume :
+ Resume (Label): xác định vị trí nhãn (label) nơi bạn muốn điều khiển của
ứng dụng quay trở lại .
+ Resume Next: thực thi tiếp tục câu lệnh ngay sau câu lệnh xảy ra lỗi .
+ Resume(0): thực thi lại câu lệnh có lỗi .
Nếu chương trình xử lý lỗi giải quyết nguyên nhân lỗi xảy ra , bạn có thể sử
dụng Resume(0) để xử lý lại các thao tác .

3.1.4 Các đối tượng xử lý lỗi ERR được cài đặt sẳn :

Đối tượng Err có thể được truy cập bất kỳ ở đâu trong ứng dụng VB . Phương
thức và thuộc tính của đối tượng Err :
Kiểu

Diễn giải

Number
Source
Description
HelpFile

Mã số lỗi.
Tên của file Visual Basic đang xảy ra lỗi .
Diễn giải mã số lỗi được tìm thấy trong thuộc tính Number.
Đường dẫn và tên file đầy đủ của file hướng dẫn hỗ trợ
thông báo lỗi .
HelpContext
Chỉ số help trong file hướng dẫn Help.
LastDLLError
Đoạn mã lỗi của lời gọi thực thi cuối cùng đến DLL.
Clear
Xóa tất cả các thiết lập thuộc tính của đối tượng Err.
Đối tượng Error và những tập hợp lỗi liên quan có sẳn chỉ khi ứng dụng đang
sử dụng một trong những thư viện DAO . Các đối tượng Error là lớp con của đối
tượng Connection được sử dụng để duy trì các thông tin về lỗi CSDL có thể xảy
ra trong ứng dụng . Thuận lợi của đối tượng Error bao gồm cả đối tượng Err là
nó chứa nhiều thuộc tính có quan hệ trực tiếp với CSDL , để nó có thể kết nối
khi cần . Đối tượng Err chỉ trả về lỗi xảy ra cuối cùng .

3.1.5 Giới thiệu về điều khiển xử lý ngoại lệ ( Exception) có cấu trúc :

Điều khiển ngoại lệ (exception) có cấu trúc cho phép bạn định nghóa các
khối mã được tạo ở dạng bảo vệ . Một đoạn mã ở dạng bảo vệ là một phần
hoặc một khối đang được kiểm tra bởi một hoặc nhiều chương trình điều khiển
lỗi kết hợp với nhau . Mỗi bộ điều khiển lỗi xác định những dạng điều khiển
ngoại lệ xử lý khác nhau . Khi một ngoại lệ Exception được phát sinh bởi đoạn
mã trong khối ở dạng bảo vệ thì tập hợp các trình điều khiển thích hợp sẽ được
tìm kiếm theo thứ tự và cái đầu tiên có điều kiện thích hợp được thực thi . Bạn
có thể thêm điều khiển ngoại lệ có cấu trúc vào ứng dụng bằng cách sử dụng
phát biểu Try … Catch … Finally .
GVHD : Nguyễn Chánh Thành

Trang 10


Luận Văn Tốt Nghiệp : Xây Dựng Chương Trình Thi Trắc Nghiệm Bằng VB.NET

3.2 Tiến trình xử lý TRY… CATCH … FINALLY:
3.2.1 Tìm hiểu tiến trình :
Cú pháp Try … Catch … Finally tương tự với cấu trúc mà bạn cảm thấy quen
thuộc với câu lệnh Select Case hoặc câu lệnh While . Trước khi bạn hiểu cách
sử dụng của tiến trình xử lý lỗi mới này , xem kỹ cú pháp của câu lệnh , cú
pháp đầy đủ như sau :
Try
TryStatements
[Catch1 [exception [As type]] [when expression]
CatchStatements1
[Exit Try]
[Catch2 [exception [As type]] [when expression]
CatchStatements2
[Exit Try]

[Catchn [exception [As type]] [when expression]
CatchStatementsn
[Exit Try]
[Finally Try]
FinallyStatements
End Try
Đối số của câu lệnh Try … Catch … Finally được mô tả như sau :
Đối số

Diễn giải

TryStatements
Exception
Type
Expression
CatchStatements
Exit Try
FinallyStatements

Khối của đoạn mã có lỗi xảy ra.
Tên biến . Giá trị khởi tạo là giá trị của lỗi xảy ra .
Xác định kiểu của điều kiện.
Biểu thức có điều kiện.
Khối của đoạn mã sẽ xử lý lỗi đã xảy ra trong khối Try.
Câu lệnh thoát khỏi tiến trình Try … Catch … Finally
Khối đoạn mã được thực thi sau khi tất cả tiến trình xử lý
lỗi khác được làm .
+ Khối Try : Khối Try chứa phần đoạn mã bạn muốn trình điều khiển lỗi hiển
thị lên màn hình . Nếu một lỗi xuất hiện trong khi thực thi bất kỳ đoạn mã nào ,
VB tìm mỗi câu lệnh CatchStatements trong đoạn Try .. Catch … Finally cho


GVHD : Nguyễn Chánh Thành

Trang 11


Luận Văn Tốt Nghiệp : Xây Dựng Chương Trình Thi Trắc Nghiệm Bằng VB.NET

đến khi tìm thấy một mã điều kiện của nó tương ứng với lỗi . Nếu có một điều
kiện được tìm thấy, điều khiển sẽ chuyển đến dòng đầu tiên của đoạn mã trong
khối Catch . Tiến trình này tiếp tục qua tất cả các câu lệnh catch cho đến khi
một khối catch thích hợp được tìm thấy . Nếu không tìm được gì cả thì VB sẽ
phát sinh một lỗi .
+ Khối Catch : Nếu có ngoại lệ exception xảy ra trong quá trình xử lý của
khối Try , mỗi câu lệnh Catch được xem xét theo thứ tự để xác định nó có xử lý
exception xảy ra không . Các xác định trong câu lệnh Catch là biểu thị cho
exception bị ném ra .
+ Khối Finally : Khối Finally được thực thi khi quyền thực thi không còn là
một phần của câu lệnh Try . Không có thao tác rõ ràng nào được yêu cầu để
thực thi khối Finally . Khi quyền thực thi của đoạn mã thoát khỏi câu lệnh Try ,
hệ thống sẽ tự động thực thi khối Finally và chuyển quyền thực thi đến đích
cuối cùng đã định trước .

3.2.2 Phát sinh Exception:
Một chương trình cho biết lỗi ngoại lệ exception phát sinh bằng cách sử dụng
phát biểu Throw .

3.2.3 Chuyển đổi từ On Error Goto … Resume:
Do không có sự tương đương về câu lệnh Resume trong câu lệnh Try Catch
Finally , việc chuyển đổi đoạn mã của bạn từ On Error chuẩn với Resume hơi

phức tạp .

3.3 Tìm lỗi trong chương trình
Bạn có thể thực hiện tiến trình kiểm tra và sửa chữa một cách đơn giản hơn
bằng cách bám vào những khái niệm và những phương pháp sau :
+ Phải chắc chắn rằng thông số Explicit được thiết lập (thường là mặc định)
để tránh ghi sai tên biến và tên các đối tượng .
+ Chứa những thủ tục bẫy lỗi được thiết kế tốt (bằng cách dùng Try … Catch) .
+ Giữ cho nội dung cài đặt của thủ tục ngắn và dễ kiểm soát .
+ Bật chế độ cho VB.NET định dạng mã nguồn một cách tự động , viết thụt
vào những nơi cần thiết .
+ Đặt tên gợi nhớ cho form , đối tượng và biến để bạn có thể biết chúng là gì
và chúng làm những gì .
Những gợi ý trên sẽ giúp bạn giải quyết những vấn đề có thể xảy ra bất ngờ
liên quan đến cú pháp , biên dịch hoặc những lỗi khi chạy .

3.4 Môi trường Debugging :

GVHD : Nguyễn Chánh Thành

Trang 12


Luận Văn Tốt Nghiệp : Xây Dựng Chương Trình Thi Trắc Nghiệm Bằng VB.NET

Để kiểm tra và sửa lỗi ứng dụng bạn phải hiểu ba chế độ mà bạn sẽ làm việc
trong ứng dụng . Bảng dưới đây mô tả các chế độ và những hành động có thể
áp dụng trong từng chế độ .
Chế độ
Design


Run

Break

Mô tả
Hầu hết công việc tạo một ứng dụng được thực hiện trong chế độ
thiết kế. Bạn có thể thiết kế các form , vẽ các điều khiển , viết
mã và dùng cửa sổ Property để thiết lập hoặc hiển thị bất kỳ
thuộc tính nào . Tuy nhiên bạn không thể thực thi đoạn mã hoặc
sử dụng những công cụ sửa chữa lỗi , ngoại trừ việc thiết lập điểm
dừng và tạo các biểu thức watch .
Khi bạn chạy ứng dụng , bạn tiếp xúc với ứng dụng giống như với
người sử dụng . Bạn vẫn có thể xem được mã nguồn nhưng không
thể thay đổi được nó .
Sự thực thi ứng dụng bị gián đoạn , bạn có thể xem và chỉnh sửa
được mã nguồn , kiểm tra hoặc sửa dữ liệu , khởi động lại ứng
dụng , dừng sự thực thi hoặc tiếp tục thực thi từ điểm dừng .

4. Làm việc với CRYSTAL REPORTS :
Một trong những đặc điểm quan trọng mà bạn có thể thêm vào ứng dụng là
khả năng in ra dữ liệu trong cơ sở dữ liệu của ứng dụng . Trong phần này ,
người sử dụng sẽ có thể có một cái nhìn chuyên nghiệp , dễ dàng tạo và sử
dụng các report (báo cáo) từ ứng dụng mà họ đang dùng . Trong VB 3 ,
Microsoft đưa vào phiên bản của Crystal Reports cùng với sản phẩm phát triển
. Tuy nhiên nó không bao giờ hòa hợp một cách đầy đủ với Visual Studio IDE .
Bạn luôn phải chạy một công cụ thiết kế riêng biệt độc lập của Visual Basic .
Trong VB.NET Crystal Reports là một thành phần được sát nhập một cách đầy
đủ vào môi trường phát triển . Crystal Reports cung cấp cơ chế tạo và thiết kế
report hoàn chỉnh , bạn có thể dùng trong Visual Basic và những chương trình

Windows cùng với các ứng dụng Web.

4.1 CRYSTAL REPORTS Là gì ?
Crystal Report là một ứng dụng mạnh cho phép bạn tạo các report , các danh
sách và các nhãn có sẳn từ dữ liệu trong ứng dụng cơ sở dữ liệu . Khi Crystal
Reports liên kết với cơ sở dữ liệu , nó đọc các giá trị từ các field mà bạn chọn
và đặt chúng vào report , các field có thể đứng một mình hoặc là một phần của
công thức dùng phát sinh những giá trị phức tạp hơn .

GVHD : Nguyễn Chánh Thành

Trang 13


Luận Văn Tốt Nghiệp : Xây Dựng Chương Trình Thi Trắc Nghiệm Bằng VB.NET

Bạn có thể dùng rất nhiều các công cụ có sẳn để điều khiển dữ liệu phù hợp
với yêu cầu của report . Các công cụ đó cho phép bạn :
+ Tạo các phép tính từ đơn giản đến phức tạp .
+ Tính toán tổng lớn và nhỏ .
+ Tính tổng cộng các mẩu tin trong một hoặc nhiều câu truy vấn.
+ Tính trung bình .
+ Kiểm tra sự hiện diện của các giá trị xác định.
+ Lọc các mẩu tin của cơ sở dữ liệu .
Dữ liệu có thể được cài đặt và được định dạng một cách chính xác ở những
nơi mà bạn cần khi thiết kế report . Bằng cách sử dụng Crystal Reports , report
của bạn có thể phức tạp hoặc là đơn giản tùy theo yêu cầu của chương trình .
Sau khi thiết kế xong report cho ứng dụng bạn có thể sử dụng nó trong ứng
dụng hoặc làm theo mẫu để tạo các report tương tự khác .
Mặc dù hầu hết các cơ sở dữ liệu đều chứa phần cho phép sinh ra các report ,

nhưng chúng thường quá khó đối với những người lập trình không chuyên
nghiệp sử dụng , và thường yêu cầu bạn phải hiểu biết về cách làm việc của
chương trình . Crystal Reports là công cụ dành cho cả hai đối tượng : người
dùng cuối (end user) và nhà phát triển chương trình .
Cùng với khái niệm thiết kế của Visual Basic , Crystal Reports có thể kết
nối với bất kỳ cơ sở dữ liệu nào . Bạn làm điều này bằng cách sử dụng một
trong các phương thức sau :
+ OLE DB (ADO) , ADO.NET , ODBC (RDO or RDS) , File cơ sở dữ liệu
(các file cục bộ , dBASE).
Chú ý : Mặc dù ODBC và OLE DB được dùng để kết nối với nhiều cơ sở dữ
liệu phức tạp như SQL Server 2000 và Oracle nhưng chúng cũng có thể dùng
cho Paradox và Microsof Access.

4.2

Thêm điều khiển vào CRYSTAL REPORTS:

a. Crystal Report Viewer:
Bước đầu tiên trong việc hiển thị một Crystal Reports trong ứng dụng là thêm
Crystal Report Viewer vào form mới trong dự án . Qua việc hiển thị này , người
sử dụng có thể chọn report từ form chính . Form sẽ chứa một nút cho phép
người sử dụng đóng form khi hoàn thành xong report . Crystal Report Viewer
cung cấp khả năng sau :
+ Đi tới trang đầu tiên , lùi một trang , tới một trang , tới trang cuối cùng , tới
một trang đã được xác định , đóng cửa sổ hiện hành , in , làm tươi lại report ,
xuất report sang dạng khác , chuyển đổi giữa việc hiển thị nhóm , phóng to/ thu
nhỏ report , tìm kiếm .

GVHD : Nguyễn Chánh Thành


Trang 14


Luận Văn Tốt Nghiệp : Xây Dựng Chương Trình Thi Trắc Nghiệm Bằng VB.NET

b. Group Tree:
Group Tree hiển thị trong Crystal Report Viewer giúp bạn điều khiển report
dựa vào nhóm được định nghóa trước trong report. Bạn có thể thấy , khi nhấn
vào một nhóm giá trị riêng biệt , một phần của report hiển thị thay đổi để phản
ánh sự chọn lựa đó . Tùy chọn Keep Group Together buộc một trang gián đoạn
để chỉ một nhóm riêng biệt bắt đầu xuất hiện trong Viewer.

5. Trình duyệt INTERNET :
Điều khiển trình duyệt Internet cho phép bạn nối Internet bằng cách sử dụng
sự kết nối Internet mặc định trên máy PC của bạn . Nó đóng vai trò tương tự
như trình duyệt Web Internet Explorer hiện có trên máy bạn .
Các điều khiển trình duyệt không có gì lạ ngoài một khung cửa sổ được để
xem và hiển thị nội dung các trang Web . Mặc dù nó chứa các phương thức ,
thuộc tính và sự kiện cần để thực hiện tất cả các chức năng trình duyệt theo
yêu cầu , nhưng nó không đưa những thành phần giao diện người dùng vào
chung . Vì thế bạn phải có nhiệm vụ thiết kế và tạo ra giao diện cần thiết tùy
biến cho chính ứng dụng để người dùng tương tác .
Bảng dưới đây là danh sách của các thuộc tính , phương thức , sự kiện mà
điều khiển Internet Browser cung cấp .
Tên
Location
LocationName
Busy

Phần mô tả

Chứa URL cho trang Web được yêu cầu hoặc được hiển
thị.
Tên được xác định của trang Web.
Trở về nếu dụng cụ Trình duyệt đang bận truy lục một
trang Web .

Sự kiện
DownloadComplete Phát sinh khi tiến trình tải trang Web kết thúc.
NavigateComplete Phát sinh khi thêm vào một chuỗi địa chỉ URL mới.
Phương thức:
Navigate
Stop
Goback
GoForward
GoHome

Thông báo cho trình duyệt mở trang Web theo địa chỉ
URL đã định trước .
Dừng hành động của Trình duyệt hiện tại .
Điều hướng tới trang Web hiển thị liền trước đó .
Điều hướng tới trang Web kế tiếp đã hiển thị trước đó .
Điều hướng tới trang Web chủ được cấu hình sẳn trong
Internet Explorer .

GVHD : Nguyễn Chánh Thành

Trang 15



×