用Asp.net简单实现历史人数和当前在线人数记录

         本实例简单的实现了网站历史人数和当前在线人数的记录,主要涉及到Global.asax文件的使用和Application、Server对象的使用。


在Global.asax文件中的代码,首先在该文件中引入命名空间:<%@ Import Namespace="System.Data.SqlClient" %>

//应用程序开始   
void Application_Start(object sender, EventArgs e) 
    {
        //从数据库获得历史人数记录
        SqlConnection con = new SqlConnection("server=.;database=countPeople;uid=sa;pwd=123456;");
        con.Open();
        SqlCommand cmd = new SqlCommand("select * from countPeople", con);
        int count = Convert.ToInt32(cmd.ExecuteScalar());
        con.Close();
        
        //添加应用程序级变量,记录历史访问人数
        Application.Add("HistoryCount", count);
        //添加应用程序级变量,记录当前在线人数
        Application.Add("OnlineCount",0);
    }


//会话开始
void Session_Start(object sender, EventArgs e) 
    {
        //防止并发造成的问题
        Application.Lock();
        //建立一个新会话后,人数+1
        Application["HistoryCount"] = (int)Application["HistoryCount"] + 1;
        Application["OnlineCount"] = (int)Application["OnlineCount"] + 1;
        Application.UnLock();
    }


//会话结束
void Session_End(object sender, EventArgs e) 
    {
        //会话结束,在线人数-1
        Application.Lock();
        Application["OnlineCount"] = (int)Application["OnlineCount"] - 1;
        Application.UnLock();
    }
    

//应用程序结束
void Application_End(object sender, EventArgs e) 
    {
          
        SqlConnection con = new SqlConnection("server=.;database=countPeople;uid=sa;pwd=;");
        con.Open();
        SqlCommand cmd = new SqlCommand("update countPeople set num=" + Application["total"], con);
        cmd.ExecuteNonQuery();
        con.Close();
    }

Default.aspx.cs代码页:

 protected void Page_Load(object sender, EventArgs e)
    {
        lblHistoryCount.Text = Application["HistoryCount"].ToString();
        lblOnlineCount.Text = Application["OnlineCount"].ToString();
    }

将Default.aspx设为起始页后,应用程序就可以运行了。  





评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值