1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng chương trình thi trắc nghiệm bằng Visual Basic.Net

104 2K 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 104
Dung lượng 3,38 MB

Nội dung

Chẳng hạn , bạn có thể định nghĩa một giaodiệ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 quak

Trang 1

PHẦN I TÌM HIỂU NGÔN NGỮ CHƯƠNG 1 : TÌM HIỂU NGÔN NGỮ 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ệnmáy tính ngày càng mạnh , tốc độ xử lý ngày càng cao , giá thành ngày càngrẽ Công nghệ phần mềm đáp ứng các phát triển đó một cách tích cực , cáctrì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épvà 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ápmá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 ứngdụ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ộctính và các công cụ khi tạo một ứng dụng , ngay cả khi bạn đã sử dụng VisualBasic 5 hoặc Visual Basic 6 thì phiên bản Visual Basic mới cũng có khá nhiềukhá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ươngtrình ứng dụng trên Web hoặc Windows từ ngay trong môi trường VisualBasic.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àybằng cách sử dụng cơ cấu NET Visual Basic.NET cung cấp cho bạn nhiều

Trang 2

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ựngnhữ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áchmớ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ữngphươ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 ứngdụ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

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ếtcác ứng dụng phân tán , như Web Visual Basic.NET có hai phần hổ trợ choviệc tạo form ( Windows forms và Web form) và một phiên bản mới của ADOvề 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ạibỏ 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ềunhữ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ể nhanhchó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ônngữ Visual Basic giờ đây là môi trường lập trình hướng đối tượng : Các giaodiện trên Windows hỗ trợ các khả năng truy cập và kế thừa rất hiệu quả Cuốicù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 VisualStudio NET Bạn không chỉ có thể phát triển các thành phần của ứng dụngbằ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ônngữ 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ấpmột tập hợp API cho việc sử dụng trên Windows và cả trên Internet

2.1Nhữ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ịchvụ Web cũng tốt như các ứng dụng Client chuẩn trên Windows Việc này đượcthực hiện bởi các chương trình quản lý mã chung cho cơ cấu NET Framework

Trang 3

và bộ diễn dịch ngôn ngữ thông dụng – Common Language Runtime Đươngnhiê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 Frameworkvà 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.2Giao 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ựngnên những ứng dụng nhận biết dữ liệu được tạo cơ bản trên ADO.NET Vớimô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 trongphiên bản trước của Visual Basic : Đặt các điều khiển ở một vị trí trên formthay đổi thuộc tính cho chúng và nhấp đúp vào điều khiển để mở Source Editor

2.3Visual Inheritance :

Visual Inheritance là một tính năng mới của Windows Forms sẽ thúc đẩycá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ươngtrình nguồn ( source code ) cũ Chẳng hạn , bạn có thể định nghĩa một giaodiệ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 quakế 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ôngsức làm việc không phải tạo lại các form tương tự

2.4Thiết kế một form chính xác :

Docking và nhiều điều khiển khác có thể mạnh hơn và hợp cho các nhà pháttriển xây dựng giao diện người dùng trên Windows hơn Windows Forms cung

Trang 4

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ườidùng ; Windows Forms cũng cung cấp thuộc tính bảo mật

2.5Giao 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ạomột ứng dụng trên Web Với Visual Basic NET , bạn có thể nhanh chóng pháttriể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êmmột Web Form vào dự án , kéo thả các điều khiển (control) cần thiết vàotrang 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óacông việc phát triển trên Web Ví dụ , Visual Basic đã cung cấp hỗ trợ choDHTML 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ụnghơ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.6Chuyể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ứctruy 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 trongnhững ngôn ngữ được sử dụng rộng rãi nhất hiện nay ? VB 6.0 được hàng triệuthả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ăngphát triển nhanh VB 6.0 và các công cụ khác của Microsoft tích hợp trongphiê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 ứngdụ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 trongmô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

Trang 5

Bảng 1

VB 6.0 > < VB NET

Tính kế

thừa đầy đủ

Thực hiện phương pháp kếthừa giả

Thực hiện kế thừa đầy đủ các lớpcon riêng dẫn xuất các thuộc tínhvà phương thức từ lớp cơ bản đượcviết bằng ngôn ngữ NET C++ hayC#

Khả năng

tương tác

Dùng các biến khác với C+

+ và Java , làm cho cácứng dụng viết bằng VB vàC++ khó tương tác vớinhau

Các kiểu biến nhất quán với C++và C# trên nền CLR

Tạo ứng

dụng Tạo tập tin EXE nhưng lệthuộc vào các thư viện

DLL hỗ trợ Việc triểnkhai khó khăn vì phải phânphối không chỉ tậptin .EXE mà cả các thưviện DLL

Tạo tập tin EXE có thể chạy khôngcần đến các thư viện DLL hỗ trợ

Phân luồng Không thể tận dụng hết

các tính năng phân luồngcó trong COM

Cho phép phân luồng linh động ,tăng tính khả mở cho ứng dụng

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 đếntrong 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ảngchung VB không còn là công cụ sinh mã giả nữa , CLR làm cho nó trở thànhngôn ngữ hướng đối tượng thực sự và đặt nó ngang cấp với C++ và C# Về mặtkỹ 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 ứngdụ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 trongcú pháp và cách thức lập trình Chúng ảnh hưởng nhiều đến khả năng chuyển

Trang 6

đổi ứng dụng VB 6.0 sang VB.NET Trong bộ công cụ Studio.NET , Microsoftcó cung cấp tiện ích Upgrade Winzard để chuyển đổi ứng dụng VB 6.0 sangVB.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 duynhất Variant là kiểu dữ liệu mặc định của VB 6.0 được gán cho tất cả cácbiến không được khai báo kiểu dữ liệu Kiểu Variant còn được gán cho cácbiến ngoài biến đầu tiên trên cùng một dòng khai báo Khai báo biến ipCountlà 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

GoSubOption Base 0 | 1VarPtr , ObjPtr , StrPtrLset

Bả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 đượcnâng cấp để khai thác hết những thuận lợi của Visual Basic NET Microsoftcung 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 6trong Visual Basic NET , Upgrade Wizard sẽ chạy tự động và tạo ra một dự ánmới của Visual Basic NET được lấy từ dự án đang có của bạn Khi dự án củabạ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ếtcá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 khinâ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ệuchỉ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

Trang 7

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ằngdự á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ângcấp dự án

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ỗichẳ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ạychương trình được chia làm hai loại : một là những lỗi được nhận dạng và sửangay 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.1Tì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 quatừ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ạnmã của bạn có một dòng không đúng , Code Editor sẽ báo cho bạn trước khibạ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 đangsử 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ụngtrên dòng đó Điều này cho phép bạn tập trung nhiều vào tính logic của ứngdụng hơn là bạn phải tự nhớ và đánh vào lệnh Tuy nhiên , khi bạn đã sửaxong 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ẩncủ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 , chophé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ư mongmuố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 :

Trang 8

+ 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ợpkhi được xử lý bởi ứng dụng Thông thường người sử dụng có thể sửa những lỗinà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

+ 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ữnglỗ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ốtnhấ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átkhỏ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ỗicó 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ữnglỗ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ụngcủ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ư trongphiê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ệugọi một tác vụ thực thi nào đó

Mã lỗi Thông báo lỗi

Trang 9

+ 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ộtchươ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àmcho 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ý trongchươ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ỗicho 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 Errorand Resume Câu lệnh On Error bật chế độ kiểm tra lỗi cho một procedurehoặ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ươngtrình hoặc một form đã cho Câu lệnh On Error bao gồm 3 phân loại khácnhau :

+ 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ã trongchươ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ộtcá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 chochương trình xử lý lỗi trong procedure không hoạt động Sau đó bạn cần phảithự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 đặtvà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átkhỏ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 :

Trang 10

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 đượcgở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ạitừ 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ươngthức và thuộc tính của đối tượng Err :

thông báo lỗi

Đối tượng Error và những tập hợp lỗi liên quan có sẳn chỉ khi ứng dụng đangsử dụng một trong những thư viện DAO Các đối tượng Error là lớp con của đốitượ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ốikhi 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áckhối mã được tạo ở dạng bảo vệ Một đoạn mã ở dạng bảo vệ là một phầnhoặ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ểnlỗ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ểnngoại lệ xử lý khác nhau Khi một ngoại lệ Exception được phát sinh bởi đoạnmã 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ẽ đượctì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ạncó 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ụngphát biểu Try … Catch … Finally

Kiểu Diễn giải

Trang 11

3.2Tiế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 quenthuộc với câu lệnh Select Case hoặc câu lệnh While Trước khi bạn hiểu cáchsử 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 :

Đối số của câu lệnh Try … Catch … Finally được mô tả như sau :

FinallyStatements 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

Đối số Diễn giải

Trang 12

đế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ã trongkhố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ị choexception 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 đíchcuố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

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ơnbằ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ụtvà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.3Môi trường Debugging :

Trang 13

Để 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ệctrong ứ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ế độ

thiết kế Bạn có thể thiết kế các form , vẽ các điều khiển , viếtmã 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ặcsử dụng những công cụ sửa chữa lỗi , ngoại trừ việc thiết lập điểmdừng và tạo các biểu thức watch

người sử dụng Bạn vẫn có thể xem được mã nguồn nhưng khôngthể thay đổi được nó

được mã nguồn , kiểm tra hoặc sửa dữ liệu , khởi động lại ứngdụng , dừng sự thực thi hoặc tiếp tục thực thi từ điểm dừng

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áttriển Tuy nhiên nó không bao giờ hòa hợp một cách đầy đủ với Visual StudioIDE 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 VisualBasic Trong VB.NET Crystal Reports là một thành phần được sát nhập mộtcá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ữngchương trình Windows cùng với các ứng dụng Web

4.1CRYSTAL 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 danhsách và các nhãn có sẳn từ dữ liệu trong ứng dụng cơ sở dữ liệu Khi CrystalReports 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ọnvà đặt chúng vào report , các field có thể đứng một mình hoặc là một phần củacông thức dùng phát sinh những giá trị phức tạp hơn

Chế độ Mô tả

Trang 14

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ợpvớ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ữngnơi mà bạn cần khi thiết kế report Bằng cách sử dụng Crystal Reports , reportcủ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 ứngdụ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ênnghiệ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ủachương trình Crystal Reports là công cụ dành cho cả hai đối tượng : ngườidù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ếtnố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ộttrong 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ùngcho Paradox và Microsof Access

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

Bước đầu tiên trong việc hiển thị một Crystal Reports trong ứng dụng là thêmCrystal Report Viewer vào form mới trong dự án Qua việc hiển thị này , ngườisử dụng có thể chọn report từ form chính Form sẽ chứa một nút cho phépngười sử dụng đóng form khi hoàn thành xong report Crystal Report Viewercung 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ớimộ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/ thunhỏ report , tìm kiếm

Trang 15

b Group Tree:

Group Tree hiển thị trong Crystal Report Viewer giúp bạn điều khiển reportdựa vào nhóm được định nghĩa trước trong report Bạn có thể thấy , khi nhấnvà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

Điều khiển trình duyệt Internet cho phép bạn nối Internet bằng cách sử dụngsự 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 theoyêu cầu , nhưng nó không đưa những thành phần giao diện người dùng vàochung 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ùybiế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

thị

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:

URL đã định trước

Internet Explorer

Tên Phần mô tả

Trang 16

GoSearch Sử dụng công cụ tìm kiếm Microsoft để bắt đầu một

phiên tìm kiếm trên Internet

Mặc dù VB cung cấp cho bạn mọi thứ để truy cập Internet Để hiểu đầy đủvà sử dụng Internet thành thạo , bạn nên viết một vài ngôn ngữ khác nhau như :ngôn ngữ đánh dấu siêu văn bản (HTML) và VBScript HTML , ngôn ngữ địnhdạng trang Web , được thiết kế nhằm hai mục đích :

+ Định dạng trang Web với bảng , hình ảnh đồ họa kết hợp với văn bản , âmthanh

+ Cho phép tích hợp với các chương trình phục vụ Internet như các tài liệuActiveX và Java (một ngôn ngữ lập trình làm các trang Web thay đổi động ) HTML được biết đến như một ngôn ngữ kịch bản , nó không được biên dịchnhư các chương trình VB HTML định dạng các trang Web , chỉ ra vị trí củaảnh đồ họa và các khung để chưa văn bản , cho phép bạn nhúng các trang webđộng , như các tài liệu ActiveX và các chương trình Java

VBScript là một ngôn ngữ kịch bản được thiết kế bởi Microsoft , là một tậphợp con của ngôn ngữ lập trình VB Điều đó có nghĩa là bạn sẽ cảm thấy rấtquen thuộc khi làm việc với VBScript Ngôn ngữ này rất hữu ích khi bạn cầnthêm các thuộc tính của VB vào một trang Web , như bẫy thông điệp , sử dụngcác câu lệnh điều khiển nhập liệu , tính toán bằng các vòng lặp

6.1Các thành phần của ứng dụng Web :

Những tập tin thêm vào dự án của bạn là những tập tin chuẩn trong hầu hếtcác ứng dụng Web , bao gồm :

+ Các tham chiếu Namespace

+ Web.config

+ Global.asax

+ Trang Web Form aspx mặc định

Những tập tin khác nhau được sử dụng bởi một ứng dụng Web được liệt kêtrong Solution Explorer

Một dự án ứng dụng đầy đủ sẽ tạo ra một cấu trúc tập tin dự án cả trên máytính của bạn và máy chủ Web server , nơi mà bạn đang thi hành ứng dụngWeb Trái lại , nếu bạn tạo một dự án Web rỗng , những tập tin này sẽ khôngđược thêm vào dự án Tạo một dự án Web rỗng hữu dụng khi :

Trang 17

+ Bạn chỉ làm việc với những tập tin HTML , và có thể ASP , thay cho nhữngtập tin ASP.NET

+ Dự án ứng dụng sẽ chỉ cần một vài tập tin thông thường

+ Bạn định thêm vào những tập tin mới bằng tay

Khi một dự án được tạo mới , VB.NET sẽ tạo những file sau trên máy server :+ Một cấu trúc đường dẫn vật lý dưới Web Site mặc định (nhưInetput/wwwroot) của máy tính phục vụ Web bạn chỉ định

+ Một dạng đường dẫn ảo (virtual path) quản lý bởi ứng dụng IIS

Dự án của bạn sẽ bao gồm những file sau :

trang , tập tin asp.vb là một tập tin ẩn chứa mã kết hợpvới biểu mẩu Web

tài nguyên URL được sử dụng trong dự án

trong dự án

nguyên dùng khám phá thông tin cho một dịch vụ Web

6.2Làm việc với Web Forms :

Biểu mẫu Web chia giao diện người dùng của một ứng dụng Web làm haiphần riệng biệt :

+ Các phần tử giao diện : Gồm có một tập tin chứa các điều khiển HTML

server và điều kiển Web hoạt động phía server

+ Logic giao diện : Gồm có mã mà bạn tạo ra tương tác với các biểu mẫu

form Mã chương trình này nằm trong một tập tin tách biệt với tập tin giao diện

người dùng và thường được gọi với tên là code-behind

Trang Web Form chứa văn bản tĩnh và các điều khiển bạn muốn hiển thị Sửdụng Visual Studio HTML Editor với các điều khiển Web Forms , bạn có thểthiết kế biểu mẫu giống như bất cứ ứng dụng Visual Studio nào khác

6.3Thiết kế Web Form :

Trang 18

Để tạo một ứng dụng Web bạn thêm Web Form vào dự án , kéo các điềukhiển Web Form đặt vào trang , sau đó nhấp đúp vào thành phần điều khiển đểthêm mã cần cho sự kiện , tương tự như khi xây dựng mã cho ứng dụngWindow Desktop.

6.4Giới thiệu các điều khiển Web Form

Khi thiết kế một Web Form , bạn có thể sử dụng các điều khiển xử lý phíaserver , những kiểu điều khiển server bao gồm :

+ HTML server controls là các phần tử HTML được đặt xử lý trên server bạn

có thể lập trình chúng

+ Web Server controls chứa nhiều tính năng xây dựng sẳn (built-in) hơn là các

điều khiển server HTML Chúng không chỉ bao gồm các điều khiển kiểu formnhư các điều khiển nút nhấn và ô văn bản textbox , mà còn có các điều khiểnphục vụ cho mục đích đặc biệt lịch biểu (calendar)

+ Validation controls kết hợp logic chặc chẽ cho phép bạn kiểm tra người

dùng nhập thông tin vào

+ User controls là những điều khiển tùy chỉnh bạn có thể tạo để sử dụng trên

một Web Form

Web Service là một module chương trình cung cấp chức năng của ứng dụngcho phép triệu gọi và truy cập từ xa thông qua Internet Web Service sử dụngcác chuẩn của Internet như XML và HTTP Việc sử dụng Web Service phụthuộc nhiều vào sự chấp nhận của XML , một ngôn ngữ mô tả dữ liệu mớidùng để truyền tải dữ liệu thông qua Web

7.1Ứng dụng Web Service :

Web Service được thiết kế nhằm cung cấp một cơ chế cho phép các loạichương trình giao tiếp qua Internet (sử dụng các giao thức Internet như HTTPGET , HTP POST và SOAP – Simple Object Access Protocol)

Web Service có thể được sử dụng trên Internet ở các dạng :

+ Bảng giá chứng khoán , dự báo thời tiết , bán hàng trên mạng , thông tin vềnhân viên , thông tin về các sản phẩm bán , thông báo tỷ giá hối đoái

7.2Tìm hiểu SOAP :

SOAP (Simple Object Access Protocol – Giao thức truy cập đối tượng giảnđơn ) là một tiêu chuẩn truyền thông cơ bản dựa trên XML sử dụng giao thứcHTTP Do giao thức này được xây dựng trên nền tảng XML nên nó có thểchuyển dữ liệu và đi qua hầu hết các bức tường lửa firewall

Trang 19

Giai đoạn đầu tiên của việc liên lạc thông qua dịch vụ Web được gọi là giai đoạn tìm kiếm (discovery phase) Trong suốt giai đoạn này , Web Service

chuyển thông tin về những thành phần có sẳn sử dụng một giao thức con của

SOAP được gọi là Service Contract Language (SCI) Sau khi giai đoạn này

được hoàn thành , những lời gọi giao diện thành phần thông thường được thựchiện Những lời gọi này thực hiện tương tự như lời gọi đến thành phần đốitượng trên máy cục bộ , ngoại trừ thông tin được chuyển qua Web bằng XML Giai đoạn cuối cùng của lời gọi một Web Service là Web Service sẽ trả về mộttài liệu XML chứa tất cả các thông tin kết Chương trình gọi sẽ dịch tài liệuXML và trích ra những thông tin cần thiết

8.1Thiết kế một hệ thống HELP SYSTEM :

Một Help System thường là những file trợ giúp có thể hiển thị bởi chính nóhoặc trong một chương trình khác Những file trợ giúp này là những file vănbản chứa chứa thông tin hướng dẫn sử dụng chương trình Ngày nay , HelpSystem có thể phức tạp hơn bằng cách cho phép thêm vào hình ảnh , âm thanhvà liên kết chúng với những Web site thay vì chỉ thuần văn bản như trước đây Một Help System bao gồm nhiều file trợ giúp khác nhau được tạo bởi nhữngfile text hoặc những file phân theo chủ đề (topic) khác nhau Một số file nàychứa văn bản , hình ảnh đồ họa , những file khác sẽ chứa những thông tinhướng dẫn cách hiển thị Help System và Hepl System làm việc như thế nào Để tạo một Hepl System của chính bạn , bạn cần phải theo những bước sau :+ Tạo những file chủ đề trợ giúp dưới dạng HTML bằng cách sử dụngMicrosoft Word hoặc bất kỳ chương trình soạn thảo nào bạn có

+ Tạo một dự án Help System

+ Tạo file Content để hiển thị những mục lục trợ giúp

+ Nối Help System hoàn chỉnh vào ứng dụng Visual basic

Các file trợ giúp có thể đơn giản hoặc phức tạp tùy theo bạn muốn Để tạonhững file topic bạn cần thực hiện những bước sau :

+ Lưu các file dưới dạng HTML

+ Thêm vào nối kết HTML

+ Thêm vào hình ảnh âm thanh trong tài liệu

8.2Định nghĩa của các FILE trợ giúp :

Một file topic chứa những dòng văn bản và hình ảnh tạo nên file trợ giúp Đểtạo hầu hết những file topic bạn cần theo các bước sau :

+ Soạn thảo nội dung cho những chủ đề

+ Thêm vào hình ảnh

Trang 20

+ Định dạng ký tự

Khi soạn thảo nội dung cho một file topic (file chủ đề ) , liên kết hypertextđược thêm vào để xác định kết nối đến chủ đề khác

Microsoft NET sẽ có trên Internet để trở thành nền tảng của một hệ điềuhành mới Nó không ràng buộc chúng ta về phần cứng bởi người dùng có khảnăng lấy dữ liệu từ Internet NET quan trọng đối với người dùng vì nó tạo racác thông tin được truy cập qua các thiết bị Nó cũng thay đổi cách mà các kỹthuật viên phát triển ứng dụng bằng cách cho phép sử dụng các dịch vụ Web

Cơ cấu này cung cấp một nền tảng mà dựa trên đó bạn xây dựng và chạy ứngdụng Nền tảng này cho phép bạn tạo ứng dụng dễ dàng hơn Cơ cấu này baogồm một nhóm các kỹ thuật thể hiện cơ bản của NET Hình dưới đây chỉ rõcác thành phần chính của bộ khung NET Framework

Thư viện Runtime cho chương trình có khả năng đáp ứng việc quản lý cácchương trình và các dịch vụ cung cấp trong quá trình thực thi Nó tương tự nhưVisual Basic 6 DLL trong Runtime Ngôn ngữ lập trình NET , như VisualBasic NET , sử dụng các dịch vụ và tính năng NET thông qua một tập các lớpđược hợp nhất với nhau Cơ cấu NET cũng cho phép bạn phát triển ứng dụngVisual Basic NETmà không lo lắng gì về sự phụ thuộc trong ứng dụng của bạnnhư bạn đã làm đối với Visual Basic 6

.NET Framework

Data and XML classes ( ADO.NET , SQL , XML , ect )

Framework Base Classes ( IO , string , security , threading , reffection , ect )

Common Language Runtime ( Debug , exception , type checking , JIT compler ) Windos Platform ( Desktop hoặc thiết bị cầm tay handheld )

Trang 21

2. Tìm hiểu COMMON LANGUAGE RUNTIME (CLR) :

NET Framework cung cấp một môi trường thực thi chương trình được gọi làCommon Language Runtime ( CLR ), đây là môi trường quản lý sự thực hiệncủa chương trình nguồn và cung cấp các dịch vụ định dạng quá trình phát triểnmã cho ứng dụng

CLR được tạo ra hoàn toàn mới , nghĩa là Microsoft không bắt đầu bằng cáchsử dụng VB Runtime hoặc Visual C++ Runtime Microsoft xây dựng môitrường cho phép một ứng dụng được viết tách ra thành những module , mỗimodule có thể được viết bằng một ngôn ngữ khác nhau Ngôn ngữ lập trìnhđược sử dụng để tạo ứng dụng NET biên dịch ra file thực thi NET PortableExecutable (PE) Các file PE có thể là file exe hoặc file dll mà bạn đã quenthuộc trong các phiên bản trước đây của VB CLR bao gồm các chức năng sauđây :

+ Tải hay nạp các lớp được yêu cầu

+ Thực hiện biên dịch tức thời ( Just – In – Time hay JIT) các lớp đối tượngtheo yêu cầu

+ Thực hiện bảo mật

+ Thực hiện các chức năng động khác trong khi chạy chương trình

Sau đây là một số thuận lợi của CLR là :

+ Tích hợp đa ngôn ngữ

+ Tăng việc bảo mật

+ Quản lý phiên bản của chương trình

+ Hổ trợ đóng gói và cài đặt

CLR điều khiển quản lý các đối tượng tự động , quản lý các tham chiếu đốitượng , bao gồm cả việc giải phóng chúng khi đối tượng không được sử dụngđến nữa CLR cung cấp cơ chế quản lý bộ nhớ tự động , loại trừ lỗi rò rỉ nhỏgiống như những lỗi lập trình thông thường

CLR tạo sự dễ dàng khi thiết kế các thành phần và các ứng dụng mà nhữngđối tượng đa ngôn ngữ Các đối tượng được viết bằng những ngôn ngữ khácnhau có thể truyền cho nhau dễ dàng tựa như chúng được viết ra từ cùng mộtngôn ngữ Ví dụ , bạn có thể định nghĩa một lớp bằng ngôn ngữ C++ , sau đósử dụng lớp đối tượng này ngay trong ngôn ngữ Visual Basic

Metadata (siêu dữ kiện) là thông tin mã máy có thể đọc được readable) về tài nguyên , hoặc có thể xem Metadata là dữ liệu dùng “mô tả dữliệu “

Trang 22

Metadata bao gồm các mô tả của một bộ phận hoặc các module , các lớp ,các giao diện , các thuộc tính , các trường (field) , sự kiện , phương thức chung ,v.v… Thông tin đầy đủ được cung cấp bởi metadata hỗ trợ cho chương trình khithực thi , hoặc cho công cụ và các chương trình khác tìm ra hầu hết những gìcần thiết để tích hợp các đối tượng thành phần với nhau Sau đây là các mụcđích sử dụng của metadata trong NET

+ CLR sử dụng metadata cho việc kiểm tra , bảo mật , cách trình bày của bộnhớ , và thông tin thực thi của chương trình

+ Class Loader là một thành phần của CLR sử dụng metadata để tìm và tảicác lớp trong NET

+ Trình biên dịch Just-In-Time (JIT) sử dụng metadata để biên dịch đoạn mãcủa Microsoft Intermediate Language (IL) NET JIT biên dịch IL thành đoạnmã lệnh được lưu trữ bên trong trước khi thực thi

+ Các công cụ khác nhau bao gồm (Trong đó có cả môi trường pháttriển NET Framework) sử dụng metadata để truyền thông tin mô tả về đốitượng

CLR cung cấp cách thức quản lý và thực thi ứng dụng Hình ở trên hiển thịcác thành phần và yêu cầu của CLR khi chương trình được NET tải vào biêndịch và thực thi Sau đây là các thành phần chính của CLR :

4.1Class Loader ( Bộ nạp lớn ) :

Mỗi khi một chương trình ứng dụng trên Windows được thực thi , bộ tảichương trình của hệ điều hành (OS Loader) được gọi để nạp chương trình vàobộ nhớ trước khi chương trình có thể thực hiện từng dòng lệnh nhị phân Nếu

OS Loader nhận biết chương trình đang được nạp là một ứng dụng NET , nó sẽgởi điều khiển đến CLR để tìm “ điểm vào “ ( thường là hàm Main( ) ) củachương trình và gọi hàm này để nhảy đến điểm bắt đầu của ứng dụng Trướckhi ứng dụng có thể thực sự được thực thi, bộ nạp lớp Class Loader phải tìmthấy được lớp có chứa hàm Main( ) và tải lớp này lên

Khi chương trình Main( ) gọi bất kỳ một đối tượng nào của một lớp chỉ định(như textbox trong VB) , Class Loader nhận được quyền điều khiển để thựchiện công việc của mình khi có một kiểu được lần đầu tiên tham chiếu đến Sau đó , Class Loader sẽ tải các lớp NET vào bộ nhớ và chuẩn bị thực thi Khithực hiện tác vụ này, Class Loader định vị và chỉ tải các lớp chủ yếu cho ứngdụng NET , sau đó sẽ giữ lại các thông tin của lớp để nó không phải nạp lạitrong suốt khoảng thời gian ứng dụng thực thi Cuối cùng , Class Loader sửdụng các thông tin metadata thích hợp để khởi tạo các biến tĩnh cho ứng dụng

Trang 23

4.2Verifier ( Bộ chứng thực ) :

Sau khi Class Loader nạp vào một lớp và trước khi một phần của đoạn mãcó thể thực thi , Verifier bắt đầu kiểm tra đoạn mã lệnh đó để đảm bảo :

+ Thông tin mô tả của metadata là hợp lệ

+ Các đoạn mã trung gian IL là an toàn về kiểu

Cả hai điều kiện trên trên cần phải thỏa mãn trước khi trình biên dịch JIT tiếptục quá trình xử lý mã

4.3Trình biên dịch JIT (JIT compiler) :

Trình biên dịch JIT (Just-In-Time) sẽ chuyển đổi đoạn mã lệnh trung giansang đoạn mã lệnh máy (native) để nó có thể thực thi trên bất kỳ hệ điều hànhnào Điểm thuận lợi mà các trình biên dịch JIT cung cấp là chúng có thể biêndịch động đoạn mã lệnh trong khi chạy chương trình Nếu bạn lấy một tập tin

PE NET tương tự từ một máy tính với một CPU sang một máy tính với hai CPUhoặc nhiều hơn , JIT có thể biên dịch đoạn mã lệnh tận dụng tính năng của cácCPU phụ

4.4Các hỗ trợ khác :

Bây giờ bạn đã hiểu mỗi thành phần trong CLR sử dụng metadata và đoạn mãlệnh trung gian phối hợp thực thi ứng dụng NET Rất nhiều tác vụ khác đượcthực hiện trong hoặc sau khi mã của ứng dụng NET thực thi xong Các tác vụnày được thực hiện bởi một trong những thành phần sau đây :

+ Code Manager điều khiển việc thực thi đoạn mã lệnh

+ CLR dò tìm và phát hiện xem khi nào các đối tượng trong ứng dụng của bạnkhông còn được tham chiếu đến nữa và thực hiện việc gom rác để lấy lại vùngbộ nhớ không sử dụng

+ Điều khiển xử lý các lỗi ngoại lệ bên trong CLR

+ CLR thực hiện các thao tác kiểm tra bảo mật khác nhau trong thời điểm chạychương trình để đảm bảo rằng đoạn mã lệnh an toàn khi thực thi và không làmgián đoạn bất kỳ một yêu cầu nào

+ CLR cung cấp khả năng gỡ rối (debug)cho chương trình ở dạng mã IL + CLR cung cấp khả năng tương tác cho phép thực thi các đoạn mã lệnh CLRvà đoạn mã lệnh COM chung với nhau trong ứng dụng

NET Framework cung cấp một mô hình lập trình chung (CommonProgramming Model) là mô hình bao gồm ngôn ngữ lập trình và rất nhiều cáctính năng Nếu bạn đã biết về các ngôn ngữ khác như C++ thì cơ cấu này sẽgiúp bạn thấy được khả năng tham chiếu mã lệnh của bạn đến những ngôn ngữkhác Điều này hoàn toàn có thể thực hiện được dựa vào không gian tên

Trang 24

(namespace) , phương thức và các lớp tương thích với tất cả các ngôn ngữđược NET hỗ trợ Nghĩa là khi sử dụng VB.NET bạn có thể viết một chuổihiển thị sử dụng phương thức WriteLine( ) của đối tượng Mỗi ngôn ngữ NETsẽ sử dụng phương thức giống nhau từ đối tượng giống nhau

Định nghĩa các namespace chính :

Namespace hay không gian tên được dùng để nhận dạng một nhóm các đốitượng , chẳng hạn như điều khiển Listbox , Textbox , những điều khiển là cácthành phần của hệ thống Windows Forms namespace , Microsoft tạonamespace để tránh sự trùng tên giữa các Assembly khác nhau hoặc các thưviện class khác nhau Namespace có thể chứa các namespace khác Khi đó sẽtạo ra cấu trúc thứ bậc , cho phép sắp xếp các đối tượng liên quan với mức chitiết cao hơn Bảng sau là một danh sách các namespace và các lớp quan trọngtrong NET Framework

dụng , như Object , Char , String

thời viết và đọc trên dòng dữ liệu và tập tin

nhau như danh sách , hàng đợi và mảng

trình đa tuyến hay đa tiểu trình

cấp chủ yếu về điều kiểu , phương thức và cáctrường

sự hỗ trợ bảo mật đối với một ứng dụng , nhưPermissions and Policy

mạng như Connection and IP Address

ADO.NET

truy cập đến nguồn dữ liệu OLE DB

Namespace Diễn giải

Trang 25

System.Data.SqlClient Cung cấp các lớp về hệ quản trị CSDL SQL , cho

phép truy cập đến nguồn dữ liệu của SQL Server

Web XML

triển trong môi trường Web

trong môi trường Windows

Khi cài đặt các thành phần của Visual Studio NET , NET Framework SDKsẽ cài đặt các nhóm công cụ sau đây : Công cụ về cấu hình và phát triển ,công cụ gỡ rối (bebug) , công cụ bảo mật, các công cụ hỗ trợ khác

Những công cụ này được thiết kế nhằm tạo sự dễ dàng hơn cho bạn khi tạo ,hiển thị và quản lý các ứng dụng và các thành phần của NET Framework Chúng được liệt kê và trình bày trong tài liệu của NET Framework SDK

Một đối tượng giống một túi rổng , mọi thứ nó cần để thi hành công việcđược chứa trong đối tượng Tất cả các phương thức , những sự kiện và nhữngthuộc tính của đối tượng được định nghĩa hoặc được viết trong mã chính nó Tất cả những đối tượng chia sẽ những đặc tính giống nhau được mô tả trongmột lớp đối tượng gọi là class

Một đối tượng thật sự là một thể hiện (còn gọi là instance) của các địnhnghĩa lớp đối tượng Mỗi lần bạn thêm vào một điều khiển mới vào form , bạnthật sự đang tạo một instance mới xuất phát từ lớp đối tượng đó

1.2Collection :

Collection là một đối tượng đặc biệt giúp bạn lưu trữ và truy xuất tất cảnhững đối tượng khác trong ứng dụng Collection là một cách để nhóm một tậphợp những mục có liên hệ với nhau Bằng cách dùng lớp COLLECTION chung

Trang 26

bạn có thể tạo nhiều thể hiện instance khác nhau của đối tượng Collection khicần trong ứng dụng

Lợi ích của việc dùng một tập hợp Collection so với mảng là Collection chophép thêm những phần tử mới mà không yêu cầu bạn viết mã định nghĩa lạikích thước như vơí mảng Một Collection cũng có thể chứa bất kỳ sự kết hợpnào của các đối tượng ; mặc dù nếu bạn sử dụng Collection thì thường chỉ đểchứa những đối tượng có cùng kiểu Đối tượng Collection có ba phương thứcvà một thuộc tính mà bạn có thể dùng để thêm vào , loại bỏ đối tượng khỏi tậphoặc truy cập vào những đối tượng chứa trong tập hợp Collection :

+ Phương thức Add dùng để thêm các mục (item) vào Collection

+ Phương thức Remove xóa các item khỏi Collection bằng cách sử dụng chỉ sốhoặc khóa

+ Phương thức Item truy cập một thành phần Collection thông qua chỉ số hoặckhóa

+ Thuộc tính Count trả về số item hiện hành trong Collection

1.3Sử dụng các đối tượng hệ thống :

Các đối tượng hệ thống ( System Object ) có thể được dùng bất cứ đâu trongứng dụng

Hầu hết thông tin đối tượng App cung cấp liên quan đến phiên bản đã đượcthay thế bởi thuộc tính Assembly Thông tin về phiên bản được đặt trong hộpthoại Project Properties Một trong những đặc điểm nổi bật của App là khảnăng định nghĩa một chuỗi tiêu đề bất cứ nơi nào trong ứng dụng

Trong phiên bản cũ của VB , đối tượng Screen cung cấp những thông tin toàncục về ứng dụng và trong một vài trường hợp nó cho phép bạn thiết lập nhữngthuộc tính toàn cục tác động lên màn hình Trong VB.NET không có đối tượngtương đương ; tuy nhiên hầu hết các chức năng của Screen có thể được thay thếbằng cách sử dụng các đặc điểm trong NET Framework Bảng sau là danhsách các thuộc tính của đối tượng Screen trong phiên bảng VB cũ được thay thế

ActiveControl System.Windows.Forms.Application.ActiveForm.ActiveControlActiveForm System.Windows.Forms.Application.ActiveForm

Trang 27

c Đối tượng Clipboard :

Clipboard cung cấp cho người sử dụng chức năng sao chép và dán chuẩn củaWindows Khi đang tạo thủ tục copy và paste , bạn phải nhận ra kiểu dữ liệumà bạn đang copy , bởi vì Windows Clipboard sử dụng văn bản và hình ảnhtheo cách khác nhau

Một Array là một danh sách các biến được truy xuất bằng cách sử dụng tênbiến giống nhau và một giá trị chỉ rõ gọi là chỉ số Với mảng Array , bạn cóthể lưu trữ nhiều biến cố của dữ liệu Mã ứng dụng có thể truy cập các phần tửmảng như một biến thông thường Sự khác nhau là giá trị chỉ số của mảngđược dùng để xác định thành phần Array cần truy cập Một hạn chế của mảnglà tất cả các phần tử phải chứa dữ liệu có cùng kiểu Hạn chế khác là bạn phảiđịnh nghĩa mảng với số phần tử cố định trước khi bạn có thể truy cập nó

.NET Framework thực thi nhiều kiểu dữ liệu số VB.NET liên kết các kiểudữ liệu NET theo các từ khóa , tương tự như các phiên bản cũ Sự tương đươnggiữa VB.NET và các phiên bản VB cũ giúp bạn nhanh chóng nắm bắt các tínhnăng mới trong VB.NET Bảng dưới đây liệt kê các kiểu số khả dụng và cácclass NET liên quan

Nếu đã sử dụng các phiên bản VB cũ , bạn sẽ thấy các thay đổi về kiểu dữliệu số trong VB.NET Các thay đổi này nhằm bảo đảm tính tương thích vớicác ngôn ngữ NET khác và dựa trên tiêu chuẩn thực thi trong CLR Chẳng

hạn như kiểu Decimal là 16 byte , thay vì 14 byte trong VB cũ ; Double và Single không thay đổi

Các kiểu Integer hoàn toàn thay đổi , Integer thay cho Long trong VB cũ , hiện tại là 4 byte , còn Long trong VB.NET là 8 byte , hỗ trợ các con số nguyên 64 bit Kiểu Short thay cho Integer trong VB cũ , 2 byte , còn kiểu Byte không thay

đổi

Kiểu dữ liệu Kết cấu kiểu CLR Dung lượng byte

Trang 28

Kiểu giá trị String thực thi theo class , thay vì theo kết cấu như các kiểu dữ liệu số String có kích cỡ thay đổi tùy theo nền thực thi Sự khác biệt chủ yếu về String giữa các phiên bảng VB cũ và VB.NET là String không thể khai báo với chiều dài xác định Khi giá trị được gán cho String , chiều dài giá trị sẽ xác định chiều dài String

Do các chuỗi được NET Framework thực thi , chúng có các đặc tính nội khác

với các phiên bản VB cũ Instance của String không thể chỉnh sửa sau khi

instance đó được tạo ra ; khi bạn chỉnh sửa giá trị , sẽ xuất hiện instance mớiđể biểu thị sự chỉnh sửa đó

Trong VB 6.0 , thảo chương viên hay dùng kiểu dữ liệu ngày (date) Ở cấp độbên dưới , VB 6.0 chuyển đổi và lưu ngày theo kiểu Double VB.NET thìkhác , nó dùng kiểu dữ liệu Date để lưu dữ liệu ngày

Trình Upgrade Winzard có khó khăn khi xác định nội dung của một biếnDouble Xét đoạn mã sau :

Dim dpDate as Double

DpDate = opRecordset (“CancellationDate”)

Upgrade Winzard không thể xác định field CancellationDate thực sự là kiểu dữliệu Date và đổi mã thích hợp Thay vì vậy , trình Winzard ghi nhận các trườnghợp dùng kiểu Double và khuyến cáo nếu bạn dùng để lưu dữ liệu ngày thì

phải đổi kiểu dữ liệu thành Date

Kiểu dữ liệu Date trong VB.NET sử dụng kết cấu DateTime , có thể biểu thịcác giá trị ngày tháng và thời gian từ 12:00:00AM , 1/1/0001 đến 11:59:59PM ,31/12/9999 Các giá trị chính xác đến ns Kết cấu DateTime có thể dễ dàng xửlý các số này do số được lưu theo giá trị 64bit

Các tính toán với biến Date được thực hiện trực tiếp , chúng được coi là giá trịInteger Do đó , phép trừ hai biến Date sẽ là hiệu thời gian (tính theo ns) giữahai ngày liên tiếp Do các giá trị thời gian tính theo ns không sử dụng được nếukhông chuyển đổi , kết cấu DateTime thực thi các phương pháp khác nhau đểcộng và trừ giá trị Date Kết quả được trả về theo kết cấu TimeSpan , có cácphương pháp để diễn dịch kết quả theo dạng thông dụng

Nếu đã sử dụng các phiên bản VB cũ , kiểu dữ liệu Boolean là hoàn toànquen thuộc đối với bạn , kiểu này không đổi trong VB.NET , khác biệt duy nhấtlà được cung cấp theo kiểu dữ liệu System.Boolean

Trang 29

Kiểu dữ liệu Boolean chỉ trả về một trong hai trạng thái đúng/sai , có/không,

… Các kiểu Boolean được lưu theo số 2 byte , chỉ có giá trị True hoặc False Khi các giá trị Boolean được chuyển sang các kiểu dữ liệu khác , False bằng 0và True bằng 1 Khi các kiểu dữ liệu khác được chuyển sang Boolen , số 0 sẽlà False và các giá trị khác 0 sẽ là True

Trong VB.NET , các structure (kết cấu) tương tự các class , do chúng liên hệmột hoặc nhiều thành viên với các thành viên khác , có thể chứa dữ liệu thànhviên , tính chất , phương pháp , và các biến cố Các structure hoạt động khácvới class , các khác biệt chính gồm :

+ Các kết cấu có tính thừa kế

+ Các kết cấu có thể được rút ra từ System.ValueType

+ Biến của biến kết cấu chứa bản sao dữ liệu một cách trực tiếp

+ Các kết cấu thường không kết thúc CLR không gọi phương pháp Finallycho kết cấu

+ Các kết cấu đòi hỏi tham số khi chúng có các constructor riêng Tuy nhiên ,mọi kết cấu đều có constructor New( ) kiểu public không có các tham số , khởiđộng các thành viên theo giá trị mặc định

+ Các khai báo về thành viên dữ liệu của kết cấu không có phần khởi động + Sự truy cập mặc định đối với các thành viên được khai báo theo câu lệnhDim là public

+ Các thành viên không được phép khai báo theo Protected trong kết cấu + Sự kiểm tra về tính bằng nhau phải thực hiện theo sự so sánh thành viên –thành viên

+ Các kết cấu không được phép có phương pháp trừu tượng

Structure rất hữu dụng trong định nghĩa các kiểu giá trị mới bao gói nhóm cácbiến Các ưu điểm khi sử dụng Structure thay vì class theo kiểu giá trị làstructure không cố định và từng instance của structure đều có bản sao dữ liệuriêng

Nếu bạn thiết kế kiểu dữ liệu mới , biểu thị phần tử dữ liệu mới và khôngcần mở rộng thông qua inheritance , bạn nên dùng structure

Enumeration và các kiểu thừa kế từ System.Enum biểu thị tập hợp các giátrị Kiểu gốc của Enumeration là giá trị nguyên và có thể chuyên biệt theoByte , Short , Integer hoặc Long Theo mặc định , Enumeration được địnhnghĩa theo Integer

Trang 30

Bạn khai báo Enumeration bằng cách dùng từ khóa Enum , tiếp theo là tên vàkiểu Nếu không chuyên biệt kiểu , Enumeration sẽ có kiểu Integer theo mặcđịnh.

Sử dụng Enumeration hoàn toàn tương tự các kiểu biến khác Mọi giá trịEnumeration đều phải đứng sau Enumeration tương ứng

Bạn có thể định nghĩa Enumeration như một phần của module , class hoặcstructure Nếu Enum là một phần của class hoặc structure , bạn phải đặt sauclass hoặc structure đó Bạn có thể hiển thị giá trị của enum theo tên hoặc theogiá trị nguyên

1.1 Định nghĩa biến :

Những biến khai báo nói chung được dùng để lưu trữ dữ liệu tạm thời khithực hiện quá trình tính toán trong ứng dụng Ngoài biến , bạn cũng có thể khaibáo dữ liệu cho ứng dụng của bạn như một hằng số Hằng số là các giá trịkhông thay đổi trong suốt ứng dụng

1.2 Phạm vi biến :

Phạm vi của biến được xác định đoạn mã nào của ứng dụng có thể truy cậpbiến đó Khi bạn khai báo một biến trong thủ tục , chỉ những đoạn mã trongthủ tục đó mới có thể truy cập hoặc sửa dữ liệu được lưu trữ trong biến Biếnđược xem là phạm vi cục bộ trong thủ tục đó

+ Private Biến chỉ có thể truy cập đối với đoạn mã trong thủ tục khi nó được

khai báo (nghĩa là , bất cứ biến nào định nghĩa bằng Private trong một lớp thìcó thể truy cập tới tất cả các hàm hoặc thủ tục con trong lớp đó )

+ Public Biến được sử dụng bởi bất kỳ thủ tục nào trong module mà nó được

khai báo ( nghĩa là bất cứ biến nào định nghĩa bằng Public thì sẽ được sử dụngvà có thể truy cập bên ngoài của lớp )

Bạn nên dùng biến Public trong các tình huống sau :

+ Khi bạn phải truy cập thông tin từ bất cứ nơi nào trong ứng dụng (như thôngtin về màu , về Font chữ )

+ Khi bạn tạo những hằng số được dùng trong ứng dụng (những hằng khôngkhai báo là Private )

+ Cho phép truy cập tới một không gian làm việc dữ liệu mà không phải mởnhiều kết nối đến cơ sở dữ liệu

+ Khi bạn phải truy cập các hàm Window API trong ứng dụng

Trang 31

Khi chuyển dữ liệu giữa hai thủ tục , thủ tục thứ nhất (thủ tục gọi ) sẽchuyển dữ liệu tới thủ tục thứ hai (thủ tục nhận) Nếu thủ tục nhận sửa đổi hoặctính toán giá trị mà thủ tục gọi cần thì thủ tục nhận có thể trả về giá trị cho thủtục gọi

2.1 Thủ tục con và hàm (subroutine) :

Bạn đã biết cách truyền một biến , bước kế tiếp là tìm hiểu các kiểu thủ tụcđể truyền dữ liệu Bạn có thể sử dụng hai kiểu thủ tục : thủ tục con và hàm Sự khác nhau gữa chúng là cách dữ liệu được trả về thủ tục gọi và thủ tụcđược truy cập Bạn sẽ viết mã hầu hết cho những ứng dụng của bạn bằng việcsử dụng thủ tục Khi bạn thiết kế ứng dụng , bạn sẽ thực thi nhiều đoạn mã từnhững vùng khác nhau của ứng dụng Bằng cách phân chia đoạn mã này ra ,bạn sẽ đọc mã nguồn và hiệu chỉnh đoạn mã của nó một cách dễ dàng hơn

a Thủ tục con :

Một trong những thành phần thông thường nhất của một ứng dụng VB là thủtục con , một thủ tục thực hiện một công việc xác định và trả về điều khiển vềcho thủ tục đã gọi nó Việc gọi một thủ tục con sẽ được chuyển điều khiển thihành từ đoạn mã hiện hành tới thủ tục con

Khi tạo một thủ tục con , bạn nên nhớ những điều sau :

+ Cố gắng nhớ những công việc có liên quan vào thủ tục con

+ Nếu có những công việc lặp đi lặp lại hoặc là sẽ được gọi từ nhiều nơi khácnhau trong ứng dụng , thì nó nên được tạo như một thủ tục con

Nếu thủ tục con phải kết thúc trước khi nó đi tới biểu thức End Sub , bạn sẽphải thêm biểu thức Exit Sub vào đoạn mã

Khi bạn tạo một thủ tục , thủ tục con hoặc hàm bạn phải quyết định cách dữliệu sẽ được xử lý Nhớ rằng khai báo biến bằng Public sẽ thực hiện dễ dànghơn khi bạn viết những đoạn mã vào lúc khởi đầu , nhưng khi bạn phải kiểmtra và phình to chương trình thì biến Public nên hạn chế sử dụng và thay bằngbiến cục bộ

b Hàm :

Sự khác nhau giữa một hàm và một thủ tục con là có thể trả về một giá trịcho nơi gọi Cả hai , hàm và thủ tục con đều có thể có những biến được truyềnvào theo kiểu đối số Cú pháp của hàm khác cú pháp một thủ tục con do khaibáo thêm kiểu giá trị trả về như sau :

[Public | Private | Friend ] [ Overloads ] [ Overrides ][ Protected ] Function TênHàm [( Các đối số )] [As kiểu]

[Các biểu thức]

[tên = biểu thức ]

Trang 32

End Function

Muốn thoát khỏi một hàm trước khi hàm kết thúc , bạn dùng phát biểu ExitFunction

Mặc định , tất cả các thủ tục VB truyền dữ liệu bằng tham chiếu , có nghĩa lànhững đối số có thể bị thay đổi bởi những thủ tục nhận Nếu bạn không muốndữ liệu bị thay đổi trong thủ tục nhận , thì bạn phải truyền đối số bằng tham trịthay vì bằng tham chiếu Để truyền đối số bằng trị , bạn thêm từ khóa Byvalvào trước tên tham số của biểu thức khai báo của thủ tục nhận Khi bạn truyềnmột biến bằng tham chiếu , thủ tục con thực sự đang làm việc với biến dữ liệutừ thủ tục gọi Ngược lại , việc truyền biến bằng trị sẽ truyền dữ liệu tới thủtục nhận và sẽ được đặt vào một biến cục bộ trong thủ tục đó

Thay đổi dòng điều khiển :

Để thực hiện một cách có điều kiện bất kỳ đoạn mã nào trong ứng dụng ,trước tiên bạn phải kiểm tra điều kiện áp đặt Việc kiểm tra này gọi là thửđiều kiện Nếu điều kiện là True đoạn mã có liên quan sẽ được thực hiện , nếuđiều kiện là False đoạn mã có liên quan sẽ bỏ qua Cách mà các ngôn ngữ lậptrình thường dùng , trong đó có cả VB , là thực hiện việc kiểm tra dựa vào hainhóm câu lệnh Thứ nhất là khối câu lệng If … then … End Thứ hai là nhómlệnh Select case Cả hai nhóm lệnh này dùng các biểu thức để thay đổi luồngđiều khiển của chương dựa trên giá trị của biến hoặc hàm

a Câu lệnh If… Then :

Một biểu thức If…Then chuẩn trong một ứng dụng thường kiểm tra giá trị dữliệu đưa vào và nếu nó thỏa mãn ( trả về True) thì đoạn mã bên trong khối Ifsẽ được xử lý

Cú Pháp :

+ Thực hiện một cách có điều kiện các đoạn mã đơn giản :

If (điều kiện ) then

[ Các phát biểu]

End if

+ Kiểm tra nhiều điều kiện :

If (điều kiện ) then

[ Các phát biểu]

[ Else điều kiện Then ]

[ Các phát biểu]…

Trang 33

b Câu lệnh lựa chọn Select Case:

Câu lệnh Select Case là một cách khác để kiểm tra nhiều điều kiện sau đóthi hành đoạn mã chương trình liên quan đến điều kiện Select Case cung cấpcác đoạn mã mà có thể quản lý dễ dành hơn lệnh If Sau đây là cú pháp :

Select Case Biểu thức kiểm tra

c Các hàm khác :

Hai hàm được đề cập trong phần này là :

+ Choose : Chọn lựa và trả về một giá trị từ một danh sách các đối số dựa

trên một giá trị được chỉ định

+ IIf : Trả về một trong hai giá trị phụ thuộc vào biểu thức

Trang 34

Mỗi hàm cung cấp một phương pháp chọn lựa duy nhất một giá trị hoặc biểuthức Hàm Choose giúp bạn dùng một giá trị để lựa chọn từ một danh sách cácchuổi hoặc các số Sau đây là cú pháp của hàm Choose :

Choose ( chỉ số , chọn lựa 1[,chon lựa 2 , [,chọn lựa n]])

Hàm sẽ giúp bạn chọn một giá trị từ nhiều điều kiện khác nhau trong danhsách khai báo

Hàm Iff trả về một trong hai biểu thức phụ thuộc vào giá trị của một biểu thứccó điều kiện Sau đây là cú pháp của hàm này :

IIf ( expr , truepart , falsepart)

Nếu expr là true giá trị hoặc biểu thức thứ nhất được trả về ; nếu expr là falsebiểu thức thứ hai được trả về Hàm IIf luôn luôn ước lượng cả hai biểu thức ởphần true và false , mặc dù nó sẽ chỉ chọn trả về một giá trị

CSDL thật sự là một hệ thống chứa nhiều đối tượng khác nhau được sửdụng cho phép ứng dụng truy cập dữ liệu nhanh và có hiệu quả CSDL rơi vàohai nhóm phân biệt sau :

1.1Local database (CSDL cục bộ) :

CSDL cục bộ có thể truy cập trực tiếp từ VB thông qua kỹ thuật Jet CSDL VB

CSDL cục bộ thường thì có kích thước vật lý và số lượng dữ liệu lưu trữ nhỏhơn nhiều so với CSDL truy cập từ xa Chúng bao gồm :

+ Microsoft Access , SQL Server Server Personal Edition , Lotus WorksheetsDBASE , Paradox , ASCII , Oracle Personal

CSDL cục bộ thường được sử dụng cho ứng dụng một người dùng như danhbạ địa chỉ , thông tin cá nhân

1.2Remote database (CSDL từ xa ) :

CSDL từ xa không thể được truy cập bởi khả năng truy cập CSDL chuẩn của

VB CSDL từ xa là một kiểu CSDL yêu cầu phải có một kết nối OBDC( Open Database Connectivity) hoặc một OLE DB cho ứng dụng truy cập nó Các CSDL ODBC gồm hai loại chính : một là chạy trên máy đơn và một là trênmáy chủ (server) , đòi hỏi không gian đĩa phải lớn , tốc độ mạnh Các CSDLtrên máy chủ được sử dụng để chia vùng làm việc giữa các máy client (khi ứngdụng được thực thi ) và hệ thống CSDL (khi các truy vấn CSDL được thựchiện ) ODBC cung cấp cơ chế cho phép ứng dụng truy cập dữ liệu nhanhkhông làm chậm hoạt động ở các máy khách client Phần lớn các CSDL kiểu

Trang 35

server cung cấp các phiên bản để chạy trên các máy đơn Chúng sử dụng mộttrong các hệ thống CSDL như Oracle , Sybase , Microsoft SQL Server

Trước khi thiết kế form , đầu tiên bạn phải có một dữ liệu hoàn chỉnh để làmviệc Một thiết kế CSDL tốt phải theo nguyên tắc sau :

+ Cho phép dữ liệu được lưu trữ có hiệu quả để CSDL không lớn hơn mức cầnthiết , cập nhật dữ liệu một cách dễ dàng , cung cấp một thiết kế linh hoạt chophép thêm vào những hàm mới , những bảng và những dữ liệu mới , sử dụngtruy xuất một cách dễ dàng và thu được kết quả một cách nhanh chóng

Bạn phải biết mục đích khi thiết kế các bảng trong cơ sở dữ liệu Mặc dù rấtlý tưởng khi thỏa mãn tất cả các mục đích thiết kế , nhưng đôi khi điều này làkhông thể thực hiện được , như bạn thấy bao gồm :

+ Ngăn chặn việc lưu các dữ liệu được lặp đi lặp lại

+ Cung cấp khả năng tìm các mẩu tin có thứ tự một cách nhanh chóng

+ Tạo công việc dễ dàng bảo quản cơ sở dữ liệu

+ Tạo công việc dễ dàng thực hiện các thay đổi lên cấu trúc CSDL

Các bước bắt đầu thiết kế CSDL xảy ra trong chính quá trình thiết kế ứngdụng Đầu tiên bạn phải định nghĩa các công việc mà ứng dụng sẽ thực hiệntrong bảng liệt kê chức năng Khi bạn đã định nghĩa các công việc để thựchiện đặc tả theo chức năng bạn đã thực hiện bước đầu tiên trong tiến trình thiếtkế CSDL Các bảng liệt kê chức năng đó giúp bạn trình bày thành bảng và dữliệu quan hệ cần thiết Các bước còn lại như sau :

+ Định nghĩa dữ liệu cần thiết cho ứng dụng

+ Sắp đặt dữ liệu vào trong các bảng

+ Thiết lập mối quan hệ giữa các bảng

+ Tạo các chỉ mục bảng cần thiết

+ Định nghĩa các yêu cầu về miền giá trị của dữ liệu

+ Định nghĩa các câu truy vấn mà ứng dụng cần

Thông thường trong các ứng dụng client/server việc nối kết với CSDL thườngtrực là điều quan trọng để cho phép nhiều người sử dụng cùng lúc truy cập trựctiếp tới dữ liệu Thật không may , đôi khi cơ chế truy cập này có thể khôngthực tế bởi các lý do sau :

Trang 36

+ Mở một kết nối đến một CSDL thường xuyên sẽ chiếm nhiều tài nguyêncủa hệ thống Hơn nữa , hầu hết các CSDL chỉ có thể xử lý một số lượng nhỏcác kết nối cùng một lúc

+ Một ứng dụng mở một kết nối đến CSDL thì không thể dễ dàng bị sửa đổibởi hàng trăm người sử dụng cùng một lúc

+ Trong các ứng dụng viết cho Web hoặc Internet , hầu hết các thành phầnđều không nối kết trực tiếp với cơ sở dữ liệu , nó chỉ truy vấn dữ liệu một lầnrồi ngắt kết nối Trong trường hợp này , việc xử lý một CSDL đang mở thườngtrực là không thể Với lý do trên và nhiều lý do khác nữa ADO.NET đã đượctạo nên để giải quyết các vấn đề này và tạo nên sự mềm dẻo hơn trong việcthiết kế ứng dụng dựa trên Web Để cho phép sự chuyển tiếp trơn tru từ ADOlên ADO.NET Microsoft đã thiết kế việc lập trình bằng ADO.NET rất giốngvới ADO Bạn chỉ cần hiểu một số khái niệm chấp nhận để sử dụng ADO.NET Điểm khác nhau nhất mà bạn phải chú ý đó là ADO.NET đơn giản hóa cácphương pháp truy cập trước đây Nó là phương pháp truy cập dữ liệu thốngnhất cho các phương pháp truy cập dữ liệu chuẩn trước đây bao gồm truy cậpcục bộ , mạng và internet

Một CSDL đang hoạt động được định nghĩa bởi việc tạo đối tượng Recorsettrong đối tượng Connection Sau đó , bạn có thể sử dụng phương thức Opencủa đối tượng Recordset để thi hành phát biểu SQL cụ thể và kết nối tới dữliệu

Trang 37

giữa các record và các field từ nhiều bảng Một câu truy vấn (query) là mộtnhóm dữ liệu từ một hoặc nhiều bảng trong CSDL Các dữ liệu này được chọnbằng một phát biểu SQL thường chứa tên của các cột dữ liệu cần lọc

Sử dụng các câu query cho phép bạn làm các việc sau :

+ Liên kết dữ liệu từ nhiều bảng

+ Giới hạn số lượng các field hoặc các record cần chọn lọc từ bảng

+ Sử dụng bộ lọc và sắp xếp có thứ tự dữ liệu

Truy cập dữ liệu để hiển thị lên form , bạn có thể sử dụng ADO để thêm ,xóa sửa dữ liệu trong CSDL

Các phương thức của ADO.NET là sự thiết kế lại của các phương thức ADOnhằm hỗ trợ cho các ứng dụng về Internet Nó sử dụng các phương thức tươngtự như các phương thức truy cập của các ứng dụng cục bộ , client/server hoặccác ứng dụng trên Internet vào CSDL Mặc dù các phương thức của ADO.NETgiống như các phương thức của ADO , nhưng cũng có một số điểm khác biệtđáng chú ý ADO.NET cho phép bạn truy cập vào các nguồn tài nguyên nhưMicrosoft SQL và các nguồn tài nguyên nào có thể truy cập được thông quaOLE DB (như Oracle và Sybase) hoặc XML Sự khác biệt lớn nhất làADO.NET tách xử lý CSDL và các thao tác truy cập dữ liệu bằng cách sử dụngDataSet và NET Data Provider Bằng cách hỗ trợ các cách truy cập này , cácứng dụng trên Client và Web thực sự được kết nối vào CSDL Điều này chophép một số lượng lớn người sử dụng có thể truy cập dữ liệu mà không cầnkiểm soát các nguồn tài nguyên so với trường hợp khi mọi người được trực tiếpnối kết DataSet là một trong hai thành phần cấu trúc rời rạc của ADO.NET.Một Dataset chứa : DataTable , Relations , Constraints cho phép nó sao lặpnguyên cả CSDL , hoặc lựa chọn các phần CSDL theo kiểu tách rời , dùngXML làm dạng thức ổn định cơ sở của nó Hình sau đây nêu khái quát cácchương trình cung cấp dữ liệu NET trong một ứng dụng ADO.NET

Thành phần thứ hai của ADO.NET là NET data provider , thành phần nàyđược thiết kế để hỗ trợ các thao tác xử lý dữ liệu nhanh và hiệu quả hơn Cácđối tượng của Data provider :

+ Đối tượng Connection cung cấp khả năng nối với cơ sở dữ liệu

+ Đối tượng Command cho phép thi hành các lệnh dựa trên nguồn dữ liệu và

truy lục một DataReader hay Dataset , hoặc thi hành một lệnh Insert ,Updatehay Delete dựa trên nguồn dữ liệu

Trang 38

+ Đối tượng DataReader cung cấp một luồn dữ liệu hiệu quả bộ nhớ

(connection connect ) , chỉ tiến tới , chỉ đọc , từ cơ sở dữ liệu sang ứng dụng

+ Đối tượng DataAdapter cung cấp một cầu nối giữa một Dataset và cơ sở

dữ liệu DataAdapter dùng các đối tượng lệnh để thi hành các lệnh Select , Insert , Update và Delete dựa trên cơ sở dữ liệu và trả về mọi dữ liệu được yêu

cầu vào , hoặc hòa giải dữ liệu từ một Dataset

Có thể dùng Dataset theo cùng cách để điều tác dữ liệu từ một nguồn dữ liệutruyền thống hoặc từ một tư liệu XML Để nối một Dataset với một nguồn dữliệu , ta cần dùng DataAdapter như một yếu tố trung gian giữa và trình cungcấp dữ liệu NET Các bước liên quan để điền Dataset :

+ Lập minh dụ một đối tượng DataAdapter mới Trước khi điền Dataset hiểnnhiên ta cần chỉ định thông tin tuyến nối và dữ liệu muốn điền Có vài cách đểlàm thế, song dễ nhất ắt vẫn là chuyền văn bản lệnh của lệnh truy vấn SQL vàmột chuổi nối hoặc một tuyến nối mở vào cấu tử

+ Tạo DataSet mới Gọi phương pháp Fill của DataAdapter Ta chuyềnDataSet muốn điền dưới dạng một tham số cho phương pháp này , cùng với têncủa bảng bên trong DataSet muốn điền Nếu gọi phương pháp Fill dựa trênmột tuyến nối đóng , tuyến nối sẽ tự động mở , rồi lại đóng sau khi DataSet đãđược điền

.NET Data Provider

DataSet

Trang 39

Lớp DataTable :

DataSet có thể chứa nhiều bảng dữ liệu ADO.NET cũng có một lớpDataSet biểu thị một bảng đơn lẻ bên trong một DataSet DataSet có một tínhchất Tables , trả về một sưu tập các đối tượng này (một DataTable Collection) DataTable biểu thị dữ liệu theo dạng bảng biểu thông thường , và các sưu tậpcác đối tượng DataColumn Lớp DataColumn tương ứng với đối tượng Fieldtrong ADO , nhưng ADO không có đối tượng nào biểu thị một hàng dữ liệu đơnlẻ , do đó lớp DataRow tiêu biểu cho tiến bộ lớn Nếu muốn truy cập dữ liệutrong DataTable , ta phải truy cập đối tượng DataRow thích hợp và lập chỉ mụcvào nó để có dữ liệu của một cột cụ thể Chỉ mục có thể là chỉ mục số của cột(0 cho cột đầu tiên , vân vân ) hoặc tên cột

3.2 Trích rút và xem dữ liệu :

Có hai cách để trích rút lại dữ liệu Cách thứ nhất là sử dụng Data Readerđể trích rút và hiển thị dữ liệu Tuy nhiên , nếu bạn dùng Data Reader bạnkhông thể hiệu chỉnh dữ liệu và cập nhật CSDL Để có thể hiệu chỉnh dữ liệubạn phải dùng một phương thức khác của Data Adapter

+ DataAdapter : Các lớp DataAdapter kế thừa từ giao diện IDataAdapter

được khai triển dưới dạng SqlDataAdapter hoặc một OleDbDataAdapter Chủtrương của DataAdapter là để dùng với một DataSet và có thể truy lục dữ liệutừ nguồn dữ liệu , điền các DataTable và các hạn chế , duy trì các mối quan hệDataTable DataSet có thể chứa nhiều DataTable , tách rời với cơ sở dữ liệu Có thể điều tác [ manipulate] – thay đổi , xóa hoặc bổ sung – dữ liệu trongDataSet mà không cần một tuyến nối hoạt động [active] với CSDL Đây làmột bước tiến lớn về thiết kế và công năng so với các phiên bản trước đây củaADO Có thể dùng DataAdapter để hòa giải các thay đổi dữ liệu giữa DataSetvà CSDL DataAdapter củng cố một tuyến nối và bốn đối tượng lệnh :SelectCommand , InsertCommand , UpdateCommand và DeleteCommand SelectCommand được dùng để truy lục dữ liệu từ CSDL , trong khi ba phươngpháp kia được dùng để hòa giải các thay đổi dữ liệu trong DataSet

.NET Data Provider

Connection Command DataReader DataAdapter Dataset

Data Source

XML

document

Trang 40

DataAdapter phô diễn một phương pháp Fill( ) , được dùng để điền mộtDataTable trong một DataSet Phương pháp Fill lấy vào một minh dụ DataSetdưới dạng một đối số được yêu cầu và một tên bảng dưới dạng một đối số tùychọn Nếu không chỉ định một tên bảng , DataTable sẽ được gán một tên ngầmđịnh ( Table , Table1 , Table2, vân vân ).

DataAdapter tác động như một cầu nối giữa Dataset rời và nguồn dữ liệu Nóphô diễn hai giao diện : đầu tiên là IdataAdapter , định nghĩa các phương phápđể điền một Dataset bằng dữ liệu từ nguồn dữ liệu từ nguồn dữ liệu , và để cậpnhật nguồn dữ liệu bằng các thay đổi đã thực hiện cho Dataset trên hệ khách Giao diện thứ hai , IdbDtaaAdapter , định nghĩa bốn tính chất , mỗi tính chấtthuộc kiểu IdbCommand Các tính chất này ấn định hoặc trả về một đối tượngCommand chỉ định lệnh sẽ được thi hành khi truy vấn hoặc cập nhật nguồn dữliệu

Đưa dữ liệu vào DataGrid đòi hỏi thực hiện một vài thay đổi trong thuộc tínhcủa DataGrid Trước tiên thêm một điều khiển DataGrid vào Form , sau đóthiết lập thuộc tính DataSource và thuộc tính DataMember

Ở bước cuối cùng , thêm dòng lệnh sau vào một hàm của form ngay sau khigọi InitializeComponent( ) :

vì DataReader chỉ cung cấp chức năng reade-only mà DataAdapter không cần Thêm đối tượng DataAdapter và SQL Command vào form Khi bạn làm điềunày thì Query Builder sẽ xuất hiện để thiết kế câu lệnh truy vấn cần cho ứngdụng

Ngày đăng: 19/07/2014, 13:15

HÌNH ẢNH LIÊN QUAN

4. Sơ đồ quan hệ ERD: - Xây dựng chương trình thi trắc nghiệm bằng Visual Basic.Net
4. Sơ đồ quan hệ ERD: (Trang 95)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w