counter.aspx
来自「《ASP.NET C#程序设计案例教程》」· ASPX 代码 · 共 65 行
ASPX
65 行
<%@ Page ContentType="Image/Gif"%>
<%@ Import Namespace="System.Drawing"%>
<%@ Import Namespace="System.Drawing.Imaging"%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<Script Language="VB" Runat="Server">
Sub Page_Load(Sender As Object,E as Eventargs)
'首先获取传递过来的UserId
Dim UserId As String=Request.QueryString("UserId")
Dim VisitNum As Long=GetVisitNum(UserId)+1 '读取原有访问次数并加1
Call AddVisitNum(UserId) '调用过程,令访问次数加1
'下面根据访问次数生成一个图片
Dim intWidth As Integer=Len(VisitNum.ToString)*14 '计算要生成的图片的宽度
Dim bmp As New Bitmap(intWidth,19,PixelFormat.Format32bppArgb) '建立Bitmap对象
Dim grh As Graphics = Graphics.FromImage(bmp) '建立Graphics对象
'下面在图片上绘制已有的图片
Dim I As Integer
For I=1 To Len(CStr(VisitNum))
Dim bmp2 As New Bitmap(Server.MapPath(Mid(CStr(VisitNum),I,1) & ".gif")) '创建Bitmap对象
grh.DrawImage(bmp2,(I-1)*14,0) '将该对象绘制在图片上
Next
'将生成图片以gif格式显示在页面上
bmp.Save(Response.OutputStream,ImageFormat.gif)
End Sub
'该函数用来读取原有访问次数
Function GetVisitNum(UserId As String) As Long
Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("temp.mdb"))
Dim strSql As String = "Select * From counters Where UserId='" & UserId & "'"
Dim cmd As New OleDbCommand(strSql, conn) '建立Command对象
conn.Open
Dim dr As OleDbDataReader = cmd.ExecuteReader() '建立DataReader对象
'下面判断数据库中是否已经有记录,如有,则读取记录;如没有,则添加一条记录
If dr.HasRows Then
dr.Read()
GetVisitNum=dr.Item("VisitNum") '返回原有访问次数
Else
GetVisitNum=0 '返回原有访问次数
Call InitialVisitNum(UserId) '调用过程添加一条记录
End If
conn.Close
End Function
'该过程用来添加一条记录
Sub InitialVisitNum(UserId As String)
Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("temp.mdb"))
Dim strSql As String = "Insert Into counters(VisitNum,UserId) Values(0,'" & UserId & "')"
Dim cmd As New OleDbCommand(strSql, conn)
conn.Open
cmd.ExecuteNonQuery()
conn.Close
End Sub
'该过程用来给访问次数加1
Sub AddVisitNum(UserId As String)
Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("temp.mdb"))
Dim strSql As String = "Update counters Set VisitNum = VisitNum + 1 Where UserId='" & UserId & "'"
Dim cmd As New OleDbCommand(strSql, conn)
conn.Open
cmd.ExecuteNonQuery()
conn.Close
End Sub
</Script>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?