您的位置:首页 > 移动开发

全局变量显示网站的总访问人数以及当前访问人数(Application 和Session的应用)

2007-06-09 11:21 776 查看
Global.asax文件的应用 使用到全局变量显示网站的总访问人数以及当前访问人数

数据库:create database MyHost
use Myhost
create table num
(
total int
)
insert into num values(1)

新建一个页面 放置两个label
this.Label1.Text = "总访问人数:" + Application["total"].ToString();
this.Label2.Text = "当前在线人数:" + Application["online"].ToString();

<%@ Application Language="C#" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script runat="server">

void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
//DB dbm = new DB();
SqlConnection connection =new SqlConnection("server=.;database=MyHost;uid=sa;pwd=;");//dbm.getcon();
connection.Open();
SqlCommand cmd = new SqlCommand("select total from num",connection);
Application["total"] = Convert.ToInt32(cmd.ExecuteScalar());
Application["online"] = 0;

}

void Application_End(object sender, EventArgs e)
{
// 在应用程序关闭时运行的代码

//SqlConnection connection = DB.createCon();//象上面一样修改
SqlConnection connection =new SqlConnection("server=.;database=MyHost;uid=sa;pwd=;");//dbm.getcon();
connection.Open();
SqlCommand cmd = new SqlCommand("update num set total="+Application["total"], connection);
cmd.ExecuteNonQuery();
}

void Application_Error(object sender, EventArgs e)
{
// 在出现未处理的错误时运行的代码

}

void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码
Session.Timeout = 1;
Application.Lock();
Application["online"] = (int)Application["online"] + 1;
Application["total"] = (int)Application["total"] + 1;
Application.UnLock();
}

void Session_End(object sender, EventArgs e)
{
// 在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
// 或 SQLServer,则不会引发该事件。
Application.Lock();
Application["online"] = (int)Application["online"] - 1;
Application.UnLock();
}

</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐