我想問如何從數據庫中自動刪除項目,噹噹前日期和時間達到記錄刪除日期時間存儲在數據庫中?在指定日期時刪除記錄ASP.NET MVC
0
A
回答
4
由於您已經使用ASP.NET MVC和Entity Framework對此進行了標記,因此我不確定您是否有權訪問底層數據庫服務器。但是,如果你這樣做,你的ASP.NET應用程序不是最好的地方。而是在後端服務器上設置一個SQL Server代理作業,該作業可以按指定的時間間隔運行並運行DELETE
查詢。
創建一個存儲過程是這樣的:
CREATE PROCEDURE dbo.DeleteOnSchedule
AS
BEGIN
DELETE [dbo].[Table]
WHERE [DateTimeToDelete] <= CURRENT_TIMESTAMP;
END
然後計劃的基礎上運行的程序。
1
正如其他用戶指出用ASP.Net這樣做並不理想。你更好地設置工作或計劃任務。
話雖這麼說,我知道這並不總是可能因此有另一種途徑,如果你真的需要 -
有一個描述在這裏的如何設置上調 http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/
你可以採取本質上你只是使用緩存過期來觸發代碼執行。您可以簡單地將刪除邏輯添加到回調中,以定期清除舊記錄。這是一個黑客,所以我會用它作爲最後的手段。
+1
不錯。有時你別無選擇,只能像這樣進行破解。 :-) –
0
您可以通過創建.NET計時器來執行此操作,該計時器可以檢查您想要的任何內容並運行刪除代碼,例如5分鐘後刪除未確認的用戶。
public static class DeleteEmployerTimer
{
static private JobsEntities JobDatabase=new JobsEntities();
private static Timer threadingTimer;
public static void StartTimer()
{
if (threadingTimer==null)
{
//raise timer callback every 5 minutes
threadingTimer = new Timer(new TimerCallback(CheckData),
HttpContext.Current, 5 * 60000, 5 * 60000);
}
}
private static void CheckData(object sender)
{
MembershipUserCollection AllEmployer = Membership.GetAllUsers();
foreach (MembershipUser Employer in AllEmployer)
{
//your condition to delete records (it can be everything you want date, specific data in config file)
if(!Employer.IsApproved)
{
MeWork.Domain.Database.Employer FindedEmployer = JobDatabase.Employer.Find(Employer.ProviderUserKey);
JobDatabase.Employer.Remove(FindedEmployer);
JobDatabase.SaveChanges();
Membership.DeleteUser(Employer.UserName, true);
}
}
}
}
創建如果您使用的是SQL服務器的應用程序定時器啓動
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
....
//Create timer
DeleteEmployerTimer.StartTimer();
}
}
相關問題
- 1. 如何RESTful刪除記錄Asp.Net Mvc 2
- 2. 刪除基於日期的記錄
- 3. 日期到期時自動刪除表中的記錄?
- 4. ASP.Net MVC表單/模型綁定和刪除記錄?
- 5. MVC刪除記錄彈出
- 6. 嘗試刪除記錄時ASP.net MVC 4錯誤
- 7. 刪除隨機記錄[0-4刪除]每組[日期]
- 8. 刪除記錄onClick,asp.net
- 9. 在特定時間刪除MySQL記錄
- 10. 當日期超出時從SQL表中刪除記錄
- 11. MySQL的刪除記錄相同的日期時間
- 12. MSSQL記錄日期/時間自動刪除
- 13. 查詢日期與指定日期的偏移量的記錄
- 14. ASP.NET MVC AJAX刪除不能在AJAX添加記錄
- 15. 更新|刪除記錄在asp.net mvc的4
- 16. 客戶記錄被刪除時,刪除ASP.NET用戶帳戶?
- 17. 選擇記錄,其中日期時間超過指定日期更大
- 18. 記錄ASP.NET MVC性能指標
- 19. 顯示日期時間在ASP.NET MVC 4
- 20. ASP.NET MVC(2)log4net日誌記錄模式
- 21. ASP.NET MVC異常日誌記錄
- 22. 在某個日期之前刪除記錄
- 23. 如何刪除在MySQL記錄並保持最新的日期
- 24. 在sqlite中刪除某個日期的記錄?
- 25. 刪除父記錄時刪除子記錄
- 26. 刪除父表記錄時不刪除子記錄
- 27. 如何刪除父記錄時刪除所有子記錄?
- 28. 從時間刪除日期
- 29. 從日期刪除時間
- 30. 使用jqGrid刪除ASP.NET MVC中的多個記錄
,你的最簡單的辦法是建立一個計劃作業是SQL Server的 – slapthelownote
的[Revalee(HTTP:// revalee。 sageanalytic.com)開源項目可能會幫助你解決這個問題。 –