【问题标题】:Day Change Update Problem换日更新问题
【发布时间】:2010-08-06 16:08:57
【问题描述】:

C# - Winforms - SQL Server

我正在构建一个应用程序,它会在当天的屏幕上显示从数据库中获取的一些数据...该应用程序就像一个桌面小部件,因此数据始终在桌面上可见

我实施的方案

当用户对数据进行一些更改时,在更新查询之后我调用“更新显示”函数...并检索新数据...

通过这样做,我不必经常/定期检查数据库中的变化,并且显示器上的数据始终是最新的.. 这种成为 PUSH 技术

现在它每天都在跟踪数据库中的数据,但只显示今天的数据……当程序启动时(手动\系统启动),它会检查日期和

  • 如果当天的记录不存在,则创建它并开始显示,以后可以修改
  • 如果记录存在,那么它只是简单地开始显示,并且有可用于修改数据的接口

现在问题来了

如果 PC 正在运行且应用程序在 12:00 pm 运行并且日期更改...没有技术可以检查:

  • 日期已更改,必须在数据库中创建新记录,并且需要刷新显示

现在我可以通过循环不断检查日期更改并解决我的问题,但如果有更好的选择,我会很高兴...

【问题讨论】:

  • 附注不完全是PUSH,但有点......请不要评论PUSH thingy

标签: c# sql winforms algorithm methodology


【解决方案1】:

您可以在程序启动时设置一个计时器,以便在午夜发生时通知您。即如果程序在上午 8 点启动,则设置一个计时器在午夜触发。

链接:http://msdn.microsoft.com/en-us/library/system.timers.timer(VS.71).aspx

【讨论】:

  • 你的意思是计算现在和午夜之间的时间让我们说 T... 将计时器间隔设置为 T 并在 T 内有所需的代码,在所需的代码之后 T 设置 24 小时的计时器间隔和启动时间再次...
  • 如果您将其视为“刷新”计时器,而不是“日期更改”计时器,您可以根据需要将许多事件附加到它(包括更改日期)。跨度>
【解决方案2】:

您可以在表单中添加一个计时器控件并将间隔设置为 86400000 毫秒 - 计算首次启动时的初始值。

【讨论】:

    【解决方案3】:

    如果您使用的是 unix/linux,您可以运行一个启动事件的 cron 作业。如果您在 Windows 上,请将任务调度程序设置为启动事件。

    该事件可能正在运行一个小应用程序/脚本、存储过程等,以执行您想要的操作。

    【讨论】:

    • 我也喜欢这个……顺便说一句,我比计时器更喜欢……但问题是它已经手动安排了……它不会成为 a= 的一部分解决方案
    【解决方案4】:

    使用Timer 每秒检查一次当前日期。每次更改时,您都可以在数据库中创建新记录。

    【讨论】:

    • 每秒钟检查一次的计时器与循环并没有太大区别
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    相关资源
    最近更新 更多