zoukankan      html  css  js  c++  java
  • [转]用Global统计在线人数

    global.asax.as
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Web;
    using System.Web.SessionState;
    using System.Data.SqlClient;
    namespace login
    {
        /// <summary>
        /// Global 的摘要说明。
        /// </summary>
        public class Global : System.Web.HttpApplication
        {
            /// <summary>
            /// 必需的设计器变量。
            /// </summary>
            private System.ComponentModel.IContainer components = null;
            public Global()
            {
                InitializeComponent();
            }   
            protected void Application_Start(Object sender, EventArgs e)//开始
            {//连接数据库
                SqlConnection con=new  SqlConnection("server=(local);database=test;uid=sa;pwd=;");
                con.Open();
                SqlCommand cmd=new SqlCommand("select *from count",con);
                int  count=Convert.ToInt32(cmd.ExecuteScalar());//返回首行首列
                            Application.Add("totol",count);//赋初值
                Application.Add("online",0);
            }
            protected void Session_Start(Object sender, EventArgs e)
            { // Session.Timeout=1;  //设定过期时间 一般不用设置  
               Application.Lock();//关闭会话 解决同时发生的情况
                      Application["totol"]=(int)Application["totol"]+1;//总的访问量加一
              Application["online"]=(int)Application["online"]+1;//当前在线人数加一
                      Application.UnLock();
            }
            protected void Application_BeginRequest(Object sender, EventArgs e)
            {
            }
            protected void Application_EndRequest(Object sender, EventArgs e)
            {
            }
            protected void Application_AuthenticateRequest(Object sender, EventArgs e)
            {
            }
            protected void Application_Error(Object sender, EventArgs e)
            {
            }
            protected void Session_End(Object sender, EventArgs e)//对话结束
            {       Application.Lock();//锁
                            Application["online"]=(int)Application["online"]-1;//当前在线人数在关闭会话是减一
                Application.UnLock();
            }
            protected void Application_End(Object sender, EventArgs e)
            { //把访问量更新到数据库的历史访问量的值
                    SqlConnection con=new  SqlConnection("server=(local);database=test;uid=sa;pwd=;");
                    con.Open();
                    SqlCommand cmd=new SqlCommand("update count set num="+Application["totol"].ToString(),con);//把当前totol 的值更新到数据库上
                    cmd.ExecuteNonQuery();//开始执行更新
                    con.Close();//关闭
            }
            #region Web 窗体设计器生成的代码
            /// <summary>
            /// 设计器支持所需的方法 - 不要使用代码编辑器修改
            /// 此方法的内容。
            /// </summary>
            private void InitializeComponent()
            {   
                this.components = new System.ComponentModel.Container();
            }
            #endregion
        }
    }
    显示流量页面:
        private void Page_Load(object sender, System.EventArgs e)
            {
                this.lbltotol.Text=Application["totol"].ToString(); //把totol的值赋给lbltotol并显示出来
                this.lblonline.Text=Application["online"].ToString();//把online当前在线的值赋给lblonline并显示出来
                // 在此处放置用户代码以初始化页面
            }

  • 相关阅读:
    [HEOI2014]南园满地堆轻絮
    [HEOI2016/TJOI2016]树
    初赛知识点
    [10.4模拟赛]T2
    [ZJOI2012]灾难
    [SDOI2010]古代猪文
    [9.26模拟赛]T1
    [9.26模拟赛]T3
    [9.26模拟赛]T2
    [9.19模拟赛]最小粒子数
  • 原文地址:https://www.cnblogs.com/mahaisong/p/1992876.html
Copyright © 2011-2022 走看看