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

来源:互联网 发布:神仙劫翼进阶准确数据 编辑:程序博客网 时间:2024/06/07 10:27

         本实例简单的实现了网站历史人数和当前在线人数的记录,主要涉及到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设为起始页后,应用程序就可以运行了。  





原创粉丝点击