教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> .NET类 >> ASP.NET >> 技术专题:如何实现 网站在线人数以及历史访问人数的统计 RSS订阅
技术专题:如何实现 网站在线人数以及历史访问人数的统计
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   

这么短的代码,我整整 两天 才把这个测试成功,很可惜在baidu ,google 等搜索引擎上都没有搜到,不然我也不用这么辛苦,这其中遇到了很多很多多的问题,记得最多时有13处错误。

非常感谢几位网友给了我很多的支持,我要把这篇文章第一个分享给他们。

我认为只有分享,并去寻找新的发现,才够意义。

不怕大家笑话,我2003年买的电脑,Celeron 1.7 的CUP,128内存,装上win2003 Server 的OS,再一个SQL Server ,再一个VS2005,我调试程序有多难,大家可想而知,希望大家有什么好的东西也分给我。好,我们正式开始:

准备工作
1、新建一个TongJi 的数据库,添加一个 tongji 的表,在表中有一个 Number 的字段,为 int 类型,Numger初值为1000;
2、新建一个网站;
3、新建数据库连接字符串(<connectionStrings>
        
<add name="TongJiConnectionString" connectionString="Data Source=.;Initial Catalog=TongJi;Integrated Security=True" providerName="System.Data.SqlClient"/>
    
</connectionStrings>


关键代码

4、添加新项/全局应用程序类:Global.asax ,其文件的全部代码如下:

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

<script runat="server">

    
void Application_Start(object sender, EventArgs e) 
    {
        
// 在应用程序启动时运行的代码         
        SqlConnection con = new SqlConnection();
        con.ConnectionString 
= ConfigurationManager.ConnectionStrings["TongJiConnectionString"].ConnectionString;
        con.Open();
        SqlCommand cmd 
= new SqlCommand("select * from tongji", con);
        
int count = Convert.ToInt32(cmd.ExecuteScalar());
        con.Close();
        Application[
"total"= count;
        Application[
"online"= 0;
    }
    
    
void Application_End(object sender, EventArgs e) 
    {
        
//  在应用程序关闭时运行的代码
        SqlConnection con = new SqlConnection();
        con.ConnectionString
=ConfigurationManager.ConnectionStrings["TongJiConnectionString"].ConnectionString;
        con.Open();
        SqlCommand cmd 
= new SqlCommand("update tongji set Number=" + Application["total"].ToString(), con);
        cmd.ExecuteNonQuery();
        con.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>


运行测试

5、拖两个Lable 到 Default.ASPx  上;
6、其Default.ASPx.cs 代码如下:

public partial class _Default : System.Web.UI.Page 
{
    
protected void Page_Load(object sender, EventArgs e)
    {
        
this.Label1.Text = "总访问人数" + Application["total"].ToString();
        
this.Label2.Text = "当前在线数" + Application["online"].ToString();
    }
}


7、OK!!启动调试。

注意事项

 8、
      我在VS2005中调试进行时,显示:总访问人数为1001;当前在线数1当;
      我重新打开另外一个IE,并把地址Copy过去,这时显示:总访问人数为1002;当前在线数2;
      这说明一切正常。但数据库中仍然为1000,??????
      我就是在这里让耽误了很多的时间(一天),但在我绝望时,我多试了一次,
      然而,这一次上天意给了我意外的恩赐。

      这时,我在VS2005中,"文件"菜单,选择“保存Global”;
      此时,数据库中的1000才更新为1002。
      如果在I I S 中调试也一样,要正常关机或停掉WWW服务才将数据一性写进数据库。



来源:upschool.com.cn
作者:
关键字:技术专题,如何实现,网站,线人数以,历史访问人数,统计
发表日期:2006-11-27

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:ASP.NET 2.0高级数据处理之使用参数   下一篇:小议Function.apply() 之一---(函数的劫持与对象的复制)


本文的相类似文章
  • 日本网站里面的精品插画欣赏
  • 世界精品网站设计欣赏与分析
  • 站长知识:网站为什么时快时慢
  • 从各种弊端来看网站服务器问题
  • 用IIS+ASP建网站的安全性分析
  • IIS6架设网站常见问题及症状答疑
  • 个人电脑变网站服务器解决方案
  • 用IIS+ASP建网站的安全性分析
  • 轻松学会架设视频点播网站
  • Alexa 世界网站排名研究(下)
  • 网友评论 查看本文全部评论
    笔 名: *
    评 论:
    最多500字。当前字数:0
    联系方式:
    验证码:
    在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com