Lập trình asp.net để tạo bộ đếm số người online
Hỏi: Xin hướng dẫn lập trình asp.net để tạo bộ đếm số người online và dịch
từ số đó sang chữ.
Đáp:
Cụm từ "số người on-line" của bạn không rõ ràng, thường thì người ta chỉ
muốn đếm xem có bao nhiêu người đã truy xuất website cụ thể. Để xây
dựng trang ASP hiển thị dòng chữ miêu tả số người đã truy xuất website
(hay trang web) của mình, bạn cần giải quyết 2 vấn đề cơ bản:
- Viết hàm chuyển đổi từ số nguyên sang dòng chữ phát âm số nguyên đó.
- Tăng counter đếm (thường phải được để trên file hay database để lưu giữ lâu dài ngay cả khi
trang web không được truy xuất hay máy server bị shutdown), rồi dùng hàm chuyển đổi counter
hiện hành sang chuỗi phát âm tương ứng và hiển thị ở vị trí thích hợp trên trang web.
Đoạn lệnh sau đây là của trang ASP demo do chúng tôi viết, mỗi khi có người dùng nào đó truy
xuất sẽ lưu thông tin về người dùng đó lên table tên là ClientsTab, rồi đếm tổng số người dùng
đã truy xuất từ trước đến nay và hiển thị chuỗi phát âm lên trang web kết quả:
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<head>
<%
'------------------------------------
' Hàm đổi 1 số có tối đa 3 ký số thành chuỗi tương ứng.
'-------------------------------------
Private Function sotram2chu(socandoi) 'As String
' Khai báo dữ liệu
Dim chuso(11) 'As String
Dim shangchuc, shangtram, shangdonvi
Dim str 'As String
chuso(1) = "một"
chuso(2) = "hai"
chuso(3) = "ba"
If shangtram <> 0 Then
str = str & " lẻ " & chuso(shangdonvi)
Else
str = str & " " & chuso(shangdonvi)
End If
sotram2chu = str
Exit Function
End If
If shangchuc = 1 Then
If shangdonvi <> 5 Then
str = str & " " & chuso(shangdonvi)
Else
str = str & " lăm"
End If
sotram2chu = str
Exit Function
End If
If shangdonvi = 1 Then
str = str + " mốt"
ElseIf shangdonvi = 5 Then
str = str + " lăm"
Else
str = str + " " + chuso(shangdonvi)
End If
sotram2chu = str
End Function
'------------------------------------
' Hàm đổi 1 số nguyên bất kỳ thành chuỗi phát âm tương ứng
'------------------------------------
Function UserCount()
'khai báo các biến cần dùng
dim MyConnection
dim MyCommand
dim MyRecordset
'tạo 1 connection đến database dung DSN
set MyConnection = Server.CreateObject("ADODB.Connection")
MyConnection.Open "DSN=MyDatabase"
'tạo đối tượng Command
set MyCommand = Server.CreateObject("ADODB.Command")
MyCommand.ActiveConnection = MyConnection
'lưu thông tin người dùng đang truy xuất vào database
MyCommand.CommandText = "INSERT INTO ClientsTab VALUES ('" &
Request.ServerVariables("Remote_Addr") & "','" & Request.ServerVariables("Path_Info") &
"','" & Request.ServerVariables("HTTP_User_Agent") & "')"
MyCommand.Execute()
'đọc tất cả record trong table ClientsTab
MyCommand.CommandText = "SELECT * FROM ClientsTab"
set MyRecordset = MyCommand.Execute()
clientnum = 0
'đếm số record trong table ClientsTab
Do While Not MyRecordset.EOF
clientnum = clientnum + 1
MyRecordset.MoveNext
Loop
'đổi số lượt người ra chuỗi phát âm
usercount=so2chu(clientnum)
'đóng các đối tượng đã dùng lại
MyRecordset.Close