您的位置:首页 > 编程语言 > ASP

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

2012-10-01 16:01 786 查看
本实例简单的实现了网站历史人数和当前在线人数的记录,主要涉及到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设为起始页后,应用程序就可以运行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: