如何在24小时后在SQL数据库的特定行中更改记录(例如从“true”到“False”)?
答案 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)
根据您的需求,有不同的选择。以下是您选择的一些内容:
对于#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)
你不应该这样做。最好让布尔时间有限,然后检查应用程序的到期时间。