当前位置: 代码迷 >> ASP.NET >> 怎么让记录每天查看次数的字段到了晚上12点自动归零
  详细解决方案

怎么让记录每天查看次数的字段到了晚上12点自动归零

热度:5061   发布时间:2013-02-26 00:00:00.0
如何让记录每天查看次数的字段到了晚上12点自动归零?
如题,我这个字段只是记录当天查看文章的次数,到了晚上12点的时候,要全部归0重新开始记录新的一天的查看次数?请问这个怎么搞?谢谢大家

------解决方案--------------------------------------------------------
如果用的是SQL Server 的话,最简单的方式是新建数据库作业,如果一定要用C#程序完成的话,可以用Timer
------解决方案--------------------------------------------------------
写个存储过程
@close DataTime,
@hit int
然后到了12点时,
UPDATE
BOOK
SET
HIT=0
WHERE
......
------解决方案--------------------------------------------------------
每次访问页面时检测当前时间,如果满足条件,就执行清零操作。
------解决方案--------------------------------------------------------
推荐数据库作业
------解决方案--------------------------------------------------------
access数据库可以通过sqlserver作业来操作
delete
FROM OPENROWSET( 'Microsoft.Jet.OLEDB.4.0 ',
'g:\abc.mdb '; 'admin '; ' ',score)
------解决方案--------------------------------------------------------
用SQL数据库的作业来操作,如果不行的话可以在程序里面放一个定时器来进行操作
------解决方案--------------------------------------------------------
最简单的方式就是创建数据库作业,但是由于条件限制(比如所使用的数据库不支持作业功能,或者使用的是虚拟主机而没有权限直接操作数据库),那么比较现实的办法就是在程序中通过创建“定时线程”完成:
使用System.Threading.Timer或者System.Timers.Timer类
http://msdn2.microsoft.com/zh-cn/library/system.threading.timer(vs.80).aspx。

在web应用程序启动事件中创建定时“线程对象”
Appliction_Start(……)
{
System.Threading.Timer t = new System.Threading.Timer(……);
……
}

------解决方案--------------------------------------------------------
基本上是 tigerhu76(虎虎) 所说。不过它很含糊“如果满足条件”的意思。你可以在数据库中创建一个叫做“系统参数”的表,只有一行记录,其中一个字段就是记录“归零的日期”。这个“满足条件”是读取此值,判断此值是前一天或者以前的日期。

不要使用web.config。web.config应该用来保存手工设置的配置信息,不要用来保存动态信息,否则你的web应用会经常垮掉重新启动。
------解决方案--------------------------------------------------------
当然,一旦归零结束,最后一个动作就是把当前日期写入此系统参数中。
  相关解决方案