James,Try/Catch和using不是相互排斥的。
如果你決定要採取的方法是重試SQLEXCEPTION你不應該,但可以使用:
Thread.Sleep(1800000);
這將等待30分鐘。然後你可以再次嘗試你的電話。我會建議,但這是一個快速,骯髒的選擇。
這可能是useful。
您應該設計您的應用程序來處理數據庫連接丟失的情況。一旦連接重新建立,您可以批量處理您打算編寫的數據併發送全部數據。
考慮將其重寫爲服務。也許你想記錄連接問題。
try
{
using (SqlConnection sqlConnection = new SqlConnection(ConnectionProvider.ConnectionString(databaseName)))
{
using (SqlCommand command = new SqlCommand())
{
if (sqlConnection.State != System.Data.ConnectionState.Open)
{
sqlConnection.Open();
}
//command.configure etc...
command.ExecuteNonQuery();
}
}
}
catch (SqlException ex)
{
//retry
}
爲什麼不使用調度程序來運行應用程序? –
我同意。使用調度程序是處理這個問題的最簡單方法。 – NotMe
@BrianRasmussen該應用程序在接下來的45天左右全天候運行。我想我可以使用日期時間關閉我的程序在8點。然後讓計劃再次啓動它在9 –