24小时后C#更改SQL数据库中的记录

时间:2013-03-17 09:38:19

标签: c# sql

如何在24小时后在SQL数据库的特定行中更改记录(例如从“true”到“False”)?

3 个答案:

答案 0 :(得分:2)

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

在桌面应用程序中,您可以start a timer并在回调中执行db update。另一种可能性是使用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 :(得分:1)

根据您的需求,有不同的选择。以下是您选择的一些内容:

  1. SQL Server代理(不包含在Express Edition中)
  2. 使用任务计划程序和批处理文件。
  3. Quartz .NET(http://quartznet.sourceforge.net/
  4. PowerShell的
  5. 对于#2,您可以在此处找到信息: http://social.msdn.microsoft.com/Forums/en-US/sqlgetstarted/thread/7e00c796-5854-4a2c-91d3-7b325420fd14/

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

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

答案 2 :(得分:0)

你不应该这样做。最好让布尔时间有限,然后检查应用程序的到期时间。