global.asax.as
using System;
using System.Collections;
using System.ComponentModel;
using System.Web;
using System.Web.SessionState;
using System.Data.SqlClient;
namespace login
{
/// <summary>
/// Global 的摘要说明。
/// </summary>
public class Global : System.Web.HttpApplication
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
public Global()
{
InitializeComponent();
}
protected void Application_Start(Object sender, EventArgs e)//开始
{//连接数据库
SqlConnection con=new SqlConnection("server=(local);database=test;uid=sa;pwd=;");
con.Open();
SqlCommand cmd=new SqlCommand("select *from count",con);
int count=Convert.ToInt32(cmd.ExecuteScalar());//返回首行首列
Application.Add("totol",count);//赋初值
Application.Add("online",0);
}
protected void Session_Start(Object sender, EventArgs e)
{ // Session.Timeout=1; //设定过期时间 一般不用设置
Application.Lock();//关闭会话 解决同时发生的情况
Application["totol"]=(int)Application["totol"]+1;//总的访问量加一
Application["online"]=(int)Application["online"]+1;//当前在线人数加一
Application.UnLock();
}
protected void Application_BeginRequest(Object sender, EventArgs e)
{
}
protected void Application_EndRequest(Object sender, EventArgs e)
{
}
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
}
protected void Application_Error(Object sender, EventArgs e)
{
}
protected void Session_End(Object sender, EventArgs e)//对话结束
{ Application.Lock();//锁
Application["online"]=(int)Application["online"]-1;//当前在线人数在关闭会话是减一
Application.UnLock();
}
protected void Application_End(Object sender, EventArgs e)
{ //把访问量更新到数据库的历史访问量的值
SqlConnection con=new SqlConnection("server=(local);database=test;uid=sa;pwd=;");
con.Open();
SqlCommand cmd=new SqlCommand("update count set num="+Application["totol"].ToString(),con);//把当前totol 的值更新到数据库上
cmd.ExecuteNonQuery();//开始执行更新
con.Close();//关闭
}
#region Web 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
}
#endregion
}
}
显示流量页面:
private void Page_Load(object sender, System.EventArgs e)
{
this.lbltotol.Text=Application["totol"].ToString(); //把totol的值赋给lbltotol并显示出来
this.lblonline.Text=Application["online"].ToString();//把online当前在线的值赋给lblonline并显示出来
// 在此处放置用户代码以初始化页面
}