
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>