• 写了一份统计网站(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>
    View Code
  • 相关阅读:
    链接的具体内容
    多线程下载图片
    Commo*IO组件的简单应用
    文件分割
    mybatis动态sql
    ajax请求与json数据处理
    ModelAndView 配置与使用
    div塌陷,以及页面常用属性
    EasyUI 时间插件使用配置
    Editor富文本编辑器配置【不含图片上传】
  • 原文地址:https://www.cnblogs.com/struCoder/p/3371393.html
Copyright © 2020-2023  润新知