asp.net实现网站历史浏览人数统计
下面是我写的代码,但是运行后没有效果,我用的数据库是access;Global.aspx页面代码:<%@Language="C#"%><%@ImportNamespace...
下面是我写的代码,但是运行后没有效果,我用的数据库是access;
Global.aspx页面代码:
<%@ Language="C#" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="PXDAL" %>
<%@ Import Namespace="PXModel" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
OleDbConnection conn = OleDBHelper.getConnection();
OleDbCommand comm = conn.CreateCommand();
comm.CommandText = "select * from CountInfo";
conn.Open();
int count = Convert.ToInt32(comm.ExecuteScalar());
conn.Close();
Application["total"] = count;
Application["online"] = 0;
}
void Application_End(object sender, EventArgs e)
{
// 在应用程序关闭时运行的代码
OleDbConnection conn = OleDBHelper.getConnection();
OleDbCommand comm = conn.CreateCommand();
comm.CommandText = "update CountInfo set count=" + Convert.ToInt32(Application["total"]);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
}
void Application_Error(object sender, EventArgs e)
{
// 在出现未处理的错误时运行的代码
}
void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码
Application.Lock();
Application["total"] = (int)Application["total"] + 1;
Application["online"] = (int)Application["online"] + 1;
Application.UnLock();
}
void Session_End(object sender, EventArgs e)
{
// 在会话结束时运行的代码。
Application.Lock();
Application["online"] = (int)Application["online"] - 1;
Application.UnLock();
}
</script>
Default测试页面代码:
this.Label1.Text = Convert.ToString(Application["total"]);
this.Label2.Text = Convert.ToString(Application["online"]);
数据库就(CountInfo)一个字段,count
,运行dedault页面,但是没有结果,求高手解答,或者给我一个现成的代码,谢谢
那个解决了,是全局类,建错了,汗,就是如果我想执行Application_End,难道非要关机吗,我想请问一下有没有代码可以实现,应为我要把历史人数插入数据库,每次都要更新,不然出来的结果还是原始的 展开
Global.aspx页面代码:
<%@ Language="C#" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="PXDAL" %>
<%@ Import Namespace="PXModel" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
OleDbConnection conn = OleDBHelper.getConnection();
OleDbCommand comm = conn.CreateCommand();
comm.CommandText = "select * from CountInfo";
conn.Open();
int count = Convert.ToInt32(comm.ExecuteScalar());
conn.Close();
Application["total"] = count;
Application["online"] = 0;
}
void Application_End(object sender, EventArgs e)
{
// 在应用程序关闭时运行的代码
OleDbConnection conn = OleDBHelper.getConnection();
OleDbCommand comm = conn.CreateCommand();
comm.CommandText = "update CountInfo set count=" + Convert.ToInt32(Application["total"]);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
}
void Application_Error(object sender, EventArgs e)
{
// 在出现未处理的错误时运行的代码
}
void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码
Application.Lock();
Application["total"] = (int)Application["total"] + 1;
Application["online"] = (int)Application["online"] + 1;
Application.UnLock();
}
void Session_End(object sender, EventArgs e)
{
// 在会话结束时运行的代码。
Application.Lock();
Application["online"] = (int)Application["online"] - 1;
Application.UnLock();
}
</script>
Default测试页面代码:
this.Label1.Text = Convert.ToString(Application["total"]);
this.Label2.Text = Convert.ToString(Application["online"]);
数据库就(CountInfo)一个字段,count
,运行dedault页面,但是没有结果,求高手解答,或者给我一个现成的代码,谢谢
那个解决了,是全局类,建错了,汗,就是如果我想执行Application_End,难道非要关机吗,我想请问一下有没有代码可以实现,应为我要把历史人数插入数据库,每次都要更新,不然出来的结果还是原始的 展开
3个回答
展开全部
主要涉及 Session_Start 和 Session_End 这两个里面造作数据一定要搞清楚对象,加减人数,早这两个函数里面操作。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
保存到数据库,你又用Application干嘛!直接读取到页面不行吗?
不关机的情况下Application保存数据和数据库是一样的,干嘛用两个
不关机的情况下Application保存数据和数据库是一样的,干嘛用两个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询