如何在24小時後更改SQL數據庫特定行中的記錄(如從「true」到「False」)?C#在24小時後在SQL數據庫中更改記錄
回答
這取決於您正在開發的應用程序的類型,並假定此應用程序正在不斷運行。例如,如果這是一個Web應用程序(ASP.NET),這絕對是一個非常糟糕的主意,因爲您不能依賴於您的應用程序是否仍將在指定時間運行的事實,或者它可能會被IIS停止。
在桌面應用程序中,您可以使用start a timer
並在回調中執行數據庫更新。另一種可能性是使用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
);
有根據您的需要是什麼不同的選擇。這裏有一些HEP您選擇:
- SQL Server代理(不包括在易捷版)
- 使用任務計劃程序和批處理文件。
- 石英.NET(http://quartznet.sourceforge.net/)
- PowerShell的
#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的建議
這應該是ASP.NET網站的一部分,我想修改一些記錄從該行插入完全24小時後從「打開」到「關閉」數據庫的特定行。什麼是從以上? – walter 2013-03-17 10:03:52
@walter使用Quartz.NET,如果可能的話,我建議將它放入一個Windows服務。但是,如果它必須從ASP.NET應用程序完成,然後看看保持您的網站活着。一種方法是修改IIS來執行此操作。請參閱此處:http://technet.microsoft.com/en-us/library/cc772183%28v=ws.10%29.aspx。 – Matt 2013-03-17 12:25:28
@walter其實,再想一想,如果可以的話,我可能會選擇SQL Server代理作業。您可以安排一項工作,每隔一小時或每一天(或任何您想要的時間)檢查表格,並查看每行,看看它何時插入。如果它等於「現在 - 24小時」,則將其設置爲「關閉」 – Matt 2013-03-17 12:32:16
你不應該這樣做。最好是具有布爾時間限制,然後檢查應用程序中的過期時間。
http://stackoverflow.com/questions/14007572/delete-record-24-hours-after-insert – 2013-03-17 09:40:17
你到目前爲止嘗試過什麼?先顯示你的努力..請閱讀[常見問題]和[問] – 2013-03-17 09:42:04
有沒有這樣的事情** ** SQL數據庫**; SQL只是結構化查詢語言 - 許多數據庫系統使用的語言,但它不是**數據庫產品......類似這樣的東西通常是特定於供應商的 - 所以我們真的需要知道**什麼數據庫系統**(和哪個版本)你使用.... – 2013-03-17 10:05:07