Domanda

Ho appena caricato il mio primo ASP.NET (come parte del mio apprendimento di vb.net) e sono entrato in un disastro terribile con il pool di connessioni (succedono cose divertenti quando ci sono più di 1 utente del tuo sito web) tutto ordinato ora usando meglio le dichiarazioni try catch (beh l'idea era di imparare) MA mi chiedevo se questo è il metodo migliore / finale, ora se il tentativo fallisce, allora MOLTO dei dettagli sulla pagina non sono posizionati / aggiornati , quindi se stai facendo un po 'di lavoro sul database e il tentativo fallisce, ricarichi la pagina ... reindirizza a se stesso e speri che funzioni la prossima volta ... o semplicemente informa l'utente che c'è stato un errore e dovrebbero riprovare?

Grazie

È stato utile?

Soluzione

Dovresti usare le istruzioni " using " per tutti gli oggetti che implementano IDisposable (come connessioni e lettori). Un'istruzione "using" viene tradotta in un blocco try-finally sotto le copertine e garantisce che venga chiamato Dispose () anche se si verifica un errore.

Ecco un esempio di frammento di codice:

using (SqlConnection conn = new SqlConnection(this.connectionString))
{
    using (SqlCommand cmd = conn.CreateCommand())
    {
        cmd.CommandText = "LoadFromRepository";
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@ID", fileID);

        conn.Open();
        using (SqlDataReader rdr =
                   cmd.ExecuteReader(CommandBehavior.CloseConnection))
        {
            while (rdr.Read())
            {
                // do something with read data
            }
        }
    }
}

Altri suggerimenti

Se si verifica un errore imprevisto, reindirizzare l'utente a una pagina di errore, poiché probabilmente accadrà anche la prossima volta.

Hai esaminato " Usare " dichiarazioni per connessioni DB e lettori?

Non reindirizzerei mai automaticamente e spero che funzionerà la prossima volta (potresti ottenere un ciclo infinito).

Informa l'utente e facoltativamente un link per riprovare.

Potresti anche voler analizzare la tua eccezione per vedere se un altro tentativo ti aiuterà. Alcune eccezioni sono in realtà dei bug e un altro tentativo non aiuterà.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top