欢迎光临
我们一直在努力

写了一份统计网站(ASP.NET)日访问量的源码(保存至数据库,部分性能待优化),运行通过。

 1 <%@ application Language="C#"%>  2 <%@ Import Namespace ="System.Data.Sql"%>  3 <%@ Import Namespace="System.Data" %>  4 <%@ Import Namespace="System.Data.SqlClient" %>  5 <%@ Import Namespace="System.Configuration" %>  6 <script runat="server">  7 //记录数据库中的访问时间  8 public static string day;  9 //统计如访问量  10 public static int count;  11 void Application_Start(object sender, EventArgs e)  12 {//本程序实现日访问量的统计  13 /*int count = 0;  14  try  15  {  16  using (SqlConnection sc = new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationServers"].ConnectionString))  17  {  18  sc.Open();  19  string cmdText = "select * from Pageview";  20  SqlCommand cmd = new SqlCommand(cmdText, sc);  21  count = Convert.ToInt32(cmd.ExecuteScalar());  22  //Response.Write(count);  23  sc.Close();  24  }  25  }  26  catch (SqlException ex)  27  {  28  //Response.Write("数据库操作异常:" + ex.Number);  29  }  30  Application["counter"] = count;*/  31 Application["day"] = DateTime.Now.ToString();  32 Application["counter"] = 0;  33 // Application["online"] = 0;  34  35  }  36  37 void Application_End(object sender, EventArgs e)  38  {  39 /* try  40  {  41  using (SqlConnection sc = new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationServers"].ConnectionString))  42  {  43  sc.Open();  44  int sum = (int)Application["total"];  45  string cmdText = "update Pageview set sums = "+sum;  46  SqlCommand cmd = new SqlCommand(cmdText,sc);  47  sc.Close();  48  49  }  50  }  51  catch (SqlException se)  52  {  53  Response.Write("关闭数据库操作更新时异常:"+se.Message);  54  }*/  55  }  56  57 void Application_Error(object sender, EventArgs e)  58  {  59 // 在出现未处理的错误时运行的代码  60  61  }  62  63 void Session_Start(object sender, EventArgs e)  64  {  65  Application.Lock();  66 string NowDay = null; //保存当天的时间  67 string NewDaystr; //保存最新的时间  68 using (SqlConnection sc = new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationServers"].ConnectionString))  69  {  70  sc.Open();  71 string cmdText = "select * from Pageview";  72 SqlCommand cmd = new SqlCommand(cmdText,sc);  73 SqlDataReader sdr = cmd.ExecuteReader();  74 while (sdr.Read())  75  {  76 count = int.Parse(sdr["sums"].ToString());  77 day = sdr["visitTime"].ToString();  78 NowDay = DateTime.Now.ToString();  79  }  80  sdr.Close();  81 //将从数据库读出的时间与当前系统的时间进行比对如果比系统时间小则累加  82 if (DateTime.Compare(Convert.ToDateTime(NowDay), Convert.ToDateTime(day)) >= 0)  83  {  84 count = 0;  85 day = DateTime.Now.AddDays(1).ToShortDateString() + " " + "00:00:00";  86 NewDaystr = day.ToString();  87 //将数据更新到数据库  88 string sqlText = string.Format(@"update Pageview set sums = 0,visitTime ='{0}'",NewDaystr);  89 cmd.CommandText = sqlText;  90 cmd.Connection = sc;  91  cmd.ExecuteNonQuery();  92  93  }  94 object objtcount = count;  95 object objday = day;  96 Application["counter"] = objtcount;  97 Application["day"] = objday;  98 //数据的累加  99 int Stat = 0; 100 //获取Application对象中的日访问量 101 Stat = (int)Application["counter"]; 102 Stat += 1; 103 object obj = Stat; 104 Application["counter"] = obj; 105 106 //将数据写入到数据库 107 string day0 = (string)Application["day"]; 108 string Text = string.Format("update Pageview set sums = {0},visitTime = '{1}'",obj,day0.ToString()); 109 cmd.CommandText = Text; 110 cmd.Connection = sc; 111  cmd.ExecuteNonQuery(); 112  sc.Dispose(); 113  sc.Close(); 114  } 115 //Application["online"] = Convert.ToInt32(Application["online"])+1; 116  Application.UnLock(); 117 118  } 119 120 void Session_End(object sender, EventArgs e) 121  { 122 // 在会话结束时运行的代码。 123 // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为 124 // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer 125 // 或 SQLServer,则不引发该事件。 126 // Application["online"] = Convert.ToInt32(Application["online"])-1; 127 128  } 129 130 </script>

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《写了一份统计网站(ASP.NET)日访问量的源码(保存至数据库,部分性能待优化),运行通过。》
文章链接:https://www.456zj.com/9440.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址