正確に 24 時間後に SQL データベースの特定の行のレコードを (「true」から「false」に) 変更するにはどうすればよいですか?
質問する
806 次
3 に答える
2
これは、開発しているアプリケーションのタイプによって異なり、このアプリケーションが常に実行されていることを前提としています。たとえば、これが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
);
于 2013-03-17T09:42:44.307 に答える
1
ニーズに応じて、さまざまなオプションがあります。ここにあなたが選択するのに役立ついくつかがあります:
- SQL Server エージェント (Express Edition には含まれていません)
- タスク スケジューラとバッチ ファイルを使用します。
- Quartz .NET ( http://quartznet.sourceforge.net/ )
- パワーシェル
#2 については、ここで情報を見つけることができます 。
ここで SQL バッチ ファイルを生成する興味深いツール: http://www.codeproject.com/Articles/12203/Generating-osql-Batch-Scripts
アプリ内から行う必要がある場合は、#3またはDarinの提案に従ってください。
于 2013-03-17T09:49:44.120 に答える
0
あなたはこれをすべきではありません。ブール値の期限を設定してから、アプリで有効期限を確認することをお勧めします。
于 2013-03-17T10:50:14.570 に答える