************************************在Global.asax中如下************************

<%@ Import Namespace="System.Data.SqlClient" %>
起始:

void Application_Start(Object sender, EventArgs e)//当前应用程序启动这件事会发生
        {

      //SqlConnection con = new SqlConnection();

     //con.ConnectionString = ConfigurationManager.ConnectionStrings["TongJiConnectionString"].ConnectionString;

            SqlConnection con=new SqlConnection("server=.;database=countPeople;uid=sa;pwd=;");
            con.Open();
            SqlCommand cmd=new SqlCommand("select * from countPeople",con);
            int count=Convert.ToInt32(cmd.ExecuteScalar());
            con.Close();
            Application["total"]=count;//Application是个全局变量,每个会话都可对他操作
            Application["online"]=0;
            

        }
 
        protected void Session_Start(Object sender, EventArgs e)//客户端一连接到服务器上,这个事件就会发生
        {
            Session.Timeout=1;
            Application.Lock();//锁定后,只有这个Session能够会话
            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();

        }

        protected void Application_End(Object sender, EventArgs e)
        {

        //SqlConnection con = new SqlConnection();

        //con.ConnectionString = ConfigurationManager.ConnectionStrings["TongJiConnectionString"].ConnectionString;

            SqlConnection con=new SqlConnection("server=.;database=countPeople;uid=sa;pwd=;");
            con.Open();
            SqlCommand cmd=new SqlCommand("update countPeople set num="+Application["total"],con);
            cmd.ExecuteNonQuery();
            con.Close();

        }

*****************************************在Aspx文件中如下*********************************

void Page_Load(object sender, System.EventArgs e)
        {
            this.lblTotal.Text=Application["total"].ToString();
            this.lblOnline.Text=Application["online"].ToString();
            // 在此处放置用户代码以初始化页面
        }
分类: ASP.NET

Asp.Net实现记录历史访问人数和当前在线人数的更多相关文章

  1. Asp.Net 网站访问人数及在线人数

    利用Application对象和Session对象可以统计历史访问人数和当前在线人数. 在会话开始和结束时,一定要进行加锁和解锁操作.由于多个用户可以共享Application对象,因此加锁是必要的, ...

  2. C#统计网站访问总人数和当前在线人数

    一.打开vitualstudio2010,新建一个网站,然后添加新项,新建一个login.aspx和index.aspx页面.再添加新项,选择全局应用程序类,该页面为Global.asax. 第一步: ...

  3. C#统计网站访问总人数和当前在线人数 Application

    一.打开vitualstudio2010,新建一个网站,然后添加新项,新建一个login.aspx和index.aspx页面.再添加新项,选择全局应用程序类,该页面为Global.asax. 第一步: ...

  4. C# 统计在线人数和总访问人数

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  5. ASP.NETCore学习记录(一)

    ASP.NETCore学习记录(一) asp.net core介绍  Startup.cs  ConfigureServices  Configure  0. ASP.NETCore 介绍 ASP.N ...

  6. history 清空历史记录 或 history不记录历史命令

    # vi ~/.bash_history 清空里面的记录,并退出当前shell # exit(一定要退出当前shell) # history 1 vi ~/.bash_history 2 histor ...

  7. IIS7 ASP.NET 未被授权访问所请求的资源

    IIS7 ASP.NET 未被授权访问所请求的资源 ASP.NET 未被授权访问所请求的资源.请考虑授予 ASP.NET 请求标识访问此资源的权限. ASP.NET 有一个在应用程序没有模拟时使用的基 ...

  8. ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限

    开发了一个导入TXT文件的功能,执行过程中出错.提示:.....ASP.NET 未被授权访问所请求的资源.请考虑授予 ASP.NET 请求标识访问此资源的权限.ASP.NET 有一个在应用程序没有模拟 ...

  9. JS基于时间戳写的浏览访问人数

    Title:JS基于时间戳写的浏览访问人数  --2013-12-23 14:07 <script language="JavaScript"> var timesta ...

随机推荐

  1. Linux-Bond-Configure

    Centos 6.6 1. modify /etc/modprobe.d/bond.conf alias bond0 bonding 2. config eth0 & eth1 cat /et ...

  2. vue-cli脚手架搭建Vue.js项目

    前提条件: 一.node.js 下载 https://nodejs.org/zh-cn/download/ 二.webpack 安装 npm install webpack -g   PS:-g 就是 ...

  3. C++模板之typename和class关键字的区别

    我们都知道,在STL中基本上都使用了模板类的声明,即template.在模板类的声明中,我们有两种方式: template <class T> template <typename ...

  4. 安装 Sublime Text 3及其插件

    1. 安装 Sublime Text 3 虽然现在的 Sublime 3 还处于 beta 阶段, 但已经非常稳定了, 而且速度比 Sublime 2 得到了增强. Sublime 3 可以到官网下载 ...

  5. Multipath TCP and load balancers

    Load balancers play a very important role in today’s Internet. Most Internet services are provided b ...

  6. 如何实现Vue已经弃用的$dispatch和$broadcast方法?

    对于父子(含跨级)传递数据的通信方式,Vue.js 并没有提供原生的 API 来支持,而是推荐使用大型数据状态管理工具 Vuex,但 Vuex 对于小型项目来说用起来真的很麻烦. 在 Vue.js 1 ...

  7. forEach方法如何跳出循环

    1.for方法跳出循环 function getItemById(arr, id) { var item = null; for (var i = 0; i < arr.length; i++) ...

  8. CodeForces 41A+43A【课上无聊刷水题系列】

    41Acode 好像只要前一个字符串存在下一个字符串的头单词就YES: #include <bits/stdc++.h> using namespace std; typedef __in ...

  9. unity模型法线反转问题

    fbx模型导入unity正常 但只要绑了骨骼,在3dmax中正常,进入unity就法线反转 原因是3dmax中模型用到复制和镜像的导出需要多一步处理 1重置变换 2反转法线 按顺序进行这两个,在绑定模 ...

  10. Dota2技能系统设计分析

    http://blog.csdn.net/langresser_king/article/details/46776701 前两周写完了新游戏的技能系统.虽然也算灵活,但是跟Dota2的技能系统设计比 ...