2011-06-30 68 views
5

我想知道是否可以定期運行C#控制檯或ASP.NET應用程序。定期運行C#應用程序以更新數據庫

我的目的是自動做一次以下步驟:

1)查詢一個數據庫。

2)在查詢的結果(1)和通過使用LINQC#,例如通過檢查一定的值已經存在於目標數據庫操縱它們。

3)導出的數據存儲在目標數據庫中。

應用程序有一個Windows Server 2008的上運行時,數據庫是SQL 2005服務器目標數據庫是SQL 2008服務器

我試圖創建一個例如SSIS包但它不會做這項工作,因爲我不能添加任何邏輯。

有人有什麼建議嗎?

+3

這可以在SSIS中完成。您有腳本任務來編寫腳本。 – vikramjb

+1

爲什麼你需要使用C#?你能否將這個邏輯封裝在一個或多個存儲過程中,並使用SQL代理來調度它們? – Yuck

+2

或者,您還可以創建命令行dotnet應用程序並通過計劃任務或SQL Server代理程序進行安排。 – vikramjb

回答

10

您應該創建一個計劃任務來執行此操作。看看這裏:控制面板 - >管理工具 - >任務調度程序

正如你所說,是的 - 一個控制檯應用程序強烈建議。


編輯

我在SSIS @andynormancx同意可能是一個更好的方式來做到這一點;但是,通常會接受創建由計劃任務執行的控制檯應用程序。這就要歸結爲您的資源,時間和專業知識:可能或不值得花費足夠的精力來學習SSIS,以便在SqlServer中創建一個包以滿足您的需求。如果有人使用SSIS完成這個任務的完整答案,我肯定會鞠躬這種專業知識。

+3

+1 - 我想補充一點,你應該使這個控制檯應用程序。 – Keith

+0

如果邏輯很簡單,你也可以創建一個存儲過程並在sql中作爲一個工作執行它。但任務調度將是最好的 – fluf

+0

@Keith - 同意 – IAbstract

-1

當然,你可以做到。但我會建議將其製作爲Windows服務。

+3

爲什麼你會推薦Windows服務? – IAbstract

+1

@IAbstract - 我會推薦它是一個Windows服務,因爲這將在後臺運行,所以用戶不必擔心每個月運行代碼。將它設置爲一次運行,不用擔心。你爲什麼不把它寫成服務? – Jethro

+2

使用計劃任務要比每個月只執行一次任務掛起專門服務要好得多。雖然現在編寫Windows服務要容易得多,但通過調度程序運行任務仍然沒有多少麻煩。 – andynormancx

3

您可以創建一個計劃任務,以預定義的時間間隔調用您的.exe文件。

轉到您的控制面板,選擇計劃任務,然後添加計劃任務

-2

如果你真的想這樣做,在C#中,我建議你寫一個服務,你的代碼幾乎等同於正常的控制檯應用程序。

請點擊以下鏈接開始使用。 C# Service step by step

+1

對於像這樣的東西,Windows服務是矯枉過正的。 – IAbstract

4

您可以創建一個新的計劃任務。這會容易得多,你不必重新發明輪子。

相關問題