ASP.net对在线人数和网站的访问人数进行统计
首先要对Golbal.asax要有一定的了解,
先添加一个Golbal.asax,然后再编写其代码
1.编写Application_Start事件:
{
//在应用程序启动时应用该代码
OleDbConnection con=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/db1.mdb");
OleDbCommand cmd=new OleDbCommand ("select * from tongji",con);
con.Open();
int count=Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
Application["total"]=count;//Application是个全局变量,每个会话都可对他操作
Application["online"]=0;
}
2.编写在应用程序结束时的代码
{
// 在应用程序关闭时运行的代码
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/db1.mdb");
OleDbCommand cmd=new OleDbCommand("updata number set num="+Application["total"],con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
3.编写有新会话时的代码
{
// 在新会话启动时运行的代码
Session.Timeout = 1;
Application.Lock();//锁定后,只有这个Session能够会话
Application["total"] = (int)Application["total"] + 1;
Application["online"] = (int)Application["online"] + 1;
Application.UnLock();//会话完毕后解锁
}
4.编写组回话结束时的代码
{
// 在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
// 或 SQLServer,则不会引发该事件。
Application.Lock();
Application["online"]=(int)Application["online"]-1;
Application.UnLock();
}
这样Global.asax中的代码就完成了,接下来就是如何把统计到的信息显示出来;
在Default.aspx中添加2个Label,然后在Default.aspx.cs中的Page_Load中添加如下代码:
this.Label15.Text = Application["Total"].ToString();
this.Label16.Text = Application["online"].ToString();
这样在线人数和网站统计人数就搞好了~