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

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>
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值