James, Try / Catch 和 using 并不相互排斥。
如果您决定采用的方法是重试 SqlException,您不应该,但可以使用:
Thread.Sleep(1800000);
这将等待 30 分钟。然后你可以再试一次你的电话。我建议不要这样做,但这是一个快速而肮脏的选择。
这可能很有用。
您应该设计您的应用程序来处理数据库连接丢失的情况。您可以批量处理您打算写入的数据,并在重新建立连接后将其全部发送。
考虑将其重写为服务。也许您想记录连接问题。
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
}