24小时后在SQL数据库中记录c#更改

本文关键字:记录 更改 数据库 SQL 24小时 | 更新日期: 2023-09-27 18:04:12

我怎么能改变记录(如从"真"到"假")在SQL数据库的特定行后恰好24小时?

24小时后在SQL数据库中记录c#更改

这取决于您正在开发的应用程序的类型,并假设该应用程序一直在运行。例如,如果这是一个web应用程序(ASP.NET),这绝对是一个非常糟糕的主意,因为你不能依赖于你的应用程序是否在未来指定的时间仍在运行,或者它可能被IIS停止。

在桌面应用程序中,您可以start a timer并在回调中执行db更新。另一种可能性是使用RegisterWaitForSingleObject方法:

ThreadPool.RegisterWaitForSingleObject(
    new AutoResetEvent(false),
    (state, timedOut) =>
    {
        // this callback will execute 24 hours later
        // here you could perform your database update
    },
    null,
    TimeSpan.FromHours(24),
    true
);

根据您的需要有不同的选择。这里有一些可以帮助你选择:

  1. SQL Server代理(不包含在Express Edition中)
  2. 使用任务调度程序和批处理文件
  3. Quartz .NET (http://quartznet.sourceforge.net/)
  4. PowerShell

关于#2,你可以在这里找到信息:http://social.msdn.microsoft.com/forums/en us/sqlgetstarted/thread/7e00c796 - 5854 - 4 - a2c - 91 - d3 - 7 - b325420fd14/

和一个有趣的工具来生成SQL批处理文件:http://www.codeproject.com/Articles/12203/Generating-osql-Batch-Scripts

注意,如果你必须在你的应用程序中做,使用#3或Darin的建议

你不应该这样做。最好是布尔时间限制,然后在你的应用程序中检查过期。