ASP Tutorial P3 - Ngôn ngữ VBScript và Lập trình với ASP


Từ: 18:29 11/08/2012
Bài: 13
Cảm ơn: 16
Thích: 3

Mã lệnh ASP có thể viết bằng VBScript hoặc JavaScript (đọc thêm tài liệu về ngôn ngữ này). Các script của ASP thực thi trên server và nằm trong cặp dấu <% %>. Bên trong có thể chứa các biểu thức, hàm, toán tử, lệnh hợp lệ của ngôn ngữ Script tương ứng. Ở đây chúng ta tìm hiểu vắn tắt cách sử dụng ASP để lập trình web động bằng VBScript.

Trong phần này, bạn sẽ nắm được những nội dung sau và có thể sử dụng như một tài liệu tham khảo khi cần thiết:

  • Cách nhập/ xuất dữ liệu khi cần thiết
  • Các kiểu dữ liệu của VBScript
  • Cách khai báo, sử dụng biến và hằng trong VBScript
  • Các cấu trúc điều khiển (rẽ nhánh, lặp,...) của VBScript
  • Tạo và sử dụng các chương trình con Thủ tục (Sub) và Hàm (Function)
  • Tham khảo các hàm hữu dụng, xử lý xâu kí tự, xử lý ngày tháng, toán học
  • Tham khảo các đối tượng có sẵn trong ASP như Request, Response, Server, Session, Application,...

1. Nhập xuất dữ liệu

Để xuất dữ liệu của đoạn chương trình trong ASP (được đặt trong cặp thẻ tag <% và %>) ta dùng phương thức Response.write
hoặc cũng có thể xuất dữ liệu bằng toán tử <%=giá trị%> (giá trị ở đây có thể là một hằng hoặc một biến)
Ví dụ

  • Xuất chuỗi: Response.write “Hoc ASP” cũng tương tự <%=”Hoc ASP”%>
  • Xuất hằng kiểu số: Response.write 2012 tương tự <%=2012%>
  • Xuất giá trị của biến x: Response.write x tương tự <%=x%>

Lệnh Response.write thường được dùng trong một khối lệnh của ASP mà ta chưa muốn kết thúc các script, sử dụng nó thì chương trình sẽ sáng sủa và dễ đọc hơn.
Lệnh <%=giá trị%> thường được dùng nhưng những script đơn lẻ mà có thể đóng ngay script, trong trường hợp ta muốn trộn các thẻ HTML với các giá trị ( của các biến/hằng) có trong ASP.

Để nhập dữ liệu ta dùng phương thức Request
Cụ thể hai phương thức yêu cầu (Request) và trả lời (Response) sẽ được đề cập cụ thể ở mục sau.

2. Các kiểu dữ liệu của VBScript

2.1 Khai báo biến

Tuy rằng ASP không bắt buộc phải khai báo các biến trước khi sử dụng nhưng nếu lập trình viên cứ tùy tiện sử dụng biến thì sẽ dẫn đến tình trạng không kiểm soát nổi và khó bắt lỗi khi xây dựng một ứng dụng lớn.

Vì vậy nên sử dụng <%Option Explicit%> ở ngay đầu mỗi tệp ASP, câu lệnh này có nghĩa là mọi biến phải được khai báo trước khi sử dụng, nếu không khi duyệt sẽ sinh ra lỗi.

Để khai báo biến ta dùng lệnh:

Dim biến1, biến2,...

Việc khai báo biến chỉ đơn thuần như vậy, lưu ý không dùng cú pháp như trong Visual Basic là 

Dim <tên biến> as <tên kiểu> ví dụ Dim Hoten as String sẽ gây lỗi.

Để khai báo biến kiểu mảng, khuyến cáo các Lập trình viên nên sử dụng các tiền tố (prefix) trước tên các biến ví dụ như biến chứa họ tên kiểu string thì nên đặt là strHoten (tiền tố viết chữ thường). Tham khảo cách viết chuẩn trong bảng sau:

              Dạng Dữ liệu

Tiền tố      

             Boolean                              bln
             Byte                              byt
             Collection object                              col
             Currency                              cur
             Date-time                              dtm
             Double                              dbl
             Error                              err
             Integer                              int
             Long                              lng
             Object                              obj
             Single                              sng
             String                              str
             User-defined type                              udt
             Variant                              vnt
             ADO command                              cmd
             ADO connection                              cnn
             ADO field                              fld
             ADO parameter                              prm
             ADO recordset                              rst

 

Ví dụ:

Biến kiểu số:

<%
Dim x
x=3
Response.write x
%>

Biến kiểu chuỗi:

<%
Dim a, b
a=”Hello”                           'a là biến kiểu chuỗi
For b=1 to 10                    ‘b là một biến kiểu số nguyên
Response.write b
Next
%>

 

2.2 Khai báo mảng

Mảng dùng để lưu trữ dữ liệu theo một dãy các phần tử.

Cú pháp:

      Dim TênMảng1(Số phần tử ), TênMảng2(Số phần tử)...

Ví dụ:

<%
dim y(5)               ‘khai báo mảng 6 phần tử đánh chỉ số từ 0 đến 5
y(0)=2
y(1)=13
response.write y(0)
response.write y(1)
%>
 

2.3 Khai báo hằng số

Sử dụng lệnh 

CONST tên hằng = giá trị

Ví dụ:
Const Max=100

3. Cấu trúc của chương trình ASP

Như đã đề cập ở phần trước, các đoạn mã Script được đặt trong cặp dấu “<%” và ”%>” và chúng được xử lý một cách tuần tự từ trên xuống, bắt đầu từ những dòng đầu tiên của tệp .asp. Để xử lý các thao tác phức tạp, ta phải dùng đến các cấu trúc rẽ nhánh, các vòng lặp cũng như là các chương trình con.

3.1 Các cấu trúc điều kiện

a. Cấu trúc điều kiện IF...THEN...ELSE...END IF

Cú pháp:

<%
         IF <điều kiện> THEN
                   <Các câu lệnh 1>
         ELSE
                   <Các câu lệnh 2>
         END IF
%>



Nếu điều kiện thỏa mãn <các câu lệnh 1> sẽ được thực thi, nếu không <các câu lệnh 2> sẽ được thực thi.
Ta có thể dùng cấu trúc IF lồng nhau

<%

IF <điều kiện 1> THEN
            <các câu lệnh 1>

ELSE
          IF <điều kiện 2> THEN
                      <các câu lệnh 2>
         
ELSE
                      <các câu lệnh 3>
          END IF
END IF

%>

Hoặc có thể dùng cấu trúc IF...THEN...ELSEIF...END IF
            

             <%
                         IF <điều kiện 1> THEN
                                        <các câu lệnh 1>

                                    ELSEIF <điều kiện 2> THEN
                                               <các câu lệnh 2>
                                   
ELSE
                                                <các câu lệnh 3>
                     
   END IF
             %>

Ví dụ:

<%
h=hour(now)
If h >12 then
Response.write “Afternoon”
else
Response.write “Morning”
End if
%>

b. Cấu trúc chọn SELECT CASE.. END SELECT

Trong trường hợp có nhiều điều kiện chọn, ta có thể dùng cú pháp này thay vì dùng nhiều lệnh IF

<%
        SELECT CASE <tên biến>
                      CASE <giá trị 1>
                                    <nhóm lệnh 1>
                      CASE <giá trị 2>
                                    <nhóm lệnh 2>
                      CASE <giá trị 3>
                                    <nhóm lệnh 3>
                      …....
                      CASE <giá trị n>
                                    <nhóm lệnh n>
                      CASE ELSE
                                    <nhóm lệnh n+1>
       END SELECT
%>

Ví dụ

<%
h=hour(now)
Select case h
Case "1"
Response.write "1 am"
Case "2"
Response.write "2 am"
Case else
Response.write "Other "
End select
%>

:

c. Điều kiện and, or, not

Dùng cho nhiều điều kiện hoặc điều kiện chọn lọc.

Ví dụ:
<%
h=hour(now)
If (h >12) and (h<18) then
Response.write “Afternoon”
End if
%>
 

 

3.2 Các cấu trúc lặp

a. Cấu trúc tuần tự FOR...NEXT

Dùng để lặp với số lần đã biết, tuy nhiên có thể ngắt lệnh bằng EXIT FOR

Cú pháp:

 <%

  FOR <tên biến> = <giá trị đầu> TO <giá trị biến> STEP <bước nhảy>

          Các lệnh chương trình

           ' Nếu muốn ngắt dùng lệnh EXIT FOR

 %>

<bước nhảy> là tùy chọn, ngầm định là 1

Ví dụ:

<%
Dim i
For i=1 to 10
Response.write i
Next
%>

b. DO WHILE...LOOP

Dùng cho lặp với số lần chưa biết cụ thể.

Chừng nào điều kiện còn đúng thì vòng lặp sẽ được thực hiện. Muốn ngắt tại thời điển bất kì dùng lệnh EXIT DO

Cú pháp:

   <%

DO WHILE <điều kiện>

Các câu lệnh

' Nếu muốn ngắt dùng lệnh EXIT DO

LOOP

   %>

Ví dụ

<%
Dim i
i=1
Do while i<=10
Response.write i
i=i+1
Loop
%>

c. WHILE...WEND

Chừng nào điều kiện còn đúng thì vòng lặp sẽ được thực hiện.

Cú pháp:

<%

WHILE <điều kiện>

Các câu lệnh

WEND

%>

Ví dụ:

<%
Dim i
i=1
While i<=10
Response.write i
i=i+1
Wend
%>

d. DO...LOOP UNTIL

Chừng nào điều kiện còn sai thì vòng lặp sẽ được thực hiện. Sử dụng khi cần chương trình thực hiện ít nhất là 1 vòng lặp dù điều kiện đúng hay sai.

Cú pháp:

<%

DO

Các câu lệnh

LOOP UNTIL <điều kiện>

%>

Ví dụ: 

<%
i=1
do
response.write i
i=i+1
loop Until i>10
%>

 

3.3 Khai báo thủ tục (Sub) và hàm (Function)

Cũng như các ngôn ngữ lập trình khác, VBScript cho phép người dùng định nghĩa và sử dụng các thủ tục ,hàm. Nhờ vậy chương trình có thể chia thành các module nhỏ tạo nên cấu trúc lập trình sáng sủa (phương pháp chia để trị).

Chẳng hạn với một bài toán ASP cần thực hiện việc hiển thị dữ liệu từ Database ra màn hình, ta có thể xây dựng các thủ tục hay hàm thực hiện từng nhiệm vụ đó:
- Thủ tục KetNoi
- Thủ tục HienThi
- Thủ tục HuyKetNoi
Như vậy phần chương trình chính sẽ rất sáng sủa, chúng ta chỉ việc gọi 3 thủ tục:
<%
KetNoi
HienThi
HuyKetNoi
%>

a. Khai báo thủ tục (Sub)

Thủ tục thực hiện một nhóm các câu lệnh.

Để viết một thủ tục chúng ta làm theo cấu trúc sau:

    <%
              Sub TenThuTuc(Tham so)
                     ‘ Phần thân của thủ tục
              End Sub
     %>

Vi dụ: 

<%

Sub example

Response.write "Hello ASP"

End Sub

Call example                 ' Gọi Sub bằng lệnh call

' hoặc có thể ko cần lệnh mà chỉ cần tên sub: example

%>

 

b. Khai báo hàm (Function)

Hàm khác với thủ tục là nó trả về một kết quả. Để viết một hàm chúng ta viết theo cấu trúc sau:

 

 

     <%
             Function TenFunction(tham so)
                     ‘ Phần nội dung của hàm
             End Function
     %>

Chú ý trong nội dung của hàm bao giờ cũng phải có một lệnh trả về kết quả:
TenFunction=...

Ví dụ:
<%
Function Tinh
a=100
b=100
Tinh=a+b
End Function 
Response.write "Ket qua = &Tinh"                  ' Gọi Function:  TênFunction
   ' dấu & để nối giữa xâu và biến trong Response.write
%>
 
 

________________________________-!- -!- -!-_____________________________