Pergunta

Eu apenas enviou o meu primeiro ASP.NET (como parte do meu aprendizado de vb.net) e entrou terrível confusão com o pool de conexão (coisas engraçadas acontecem quando há mais de 1 utilizador do seu web site) tudo resolvido agora através de uma melhor utilização das declarações try catch (bem a ideia era aprender), mas eu queria saber se este é o melhor método / final, agora, se a tentativa falhar, então um monte de detalhes sobre a página não é colocado / atualizado , por isso, se você está fazendo algum trabalho de banco de dados ea tentativa falhar, você recarregar a página ... redirecionamento para si mesmo e espero que trabalhar na próxima vez ... ou apenas informar o usuário houve um erro e eles devem tentar de novo?

Graças

Foi útil?

Solução

Você deve definitivamente usar declarações de using 'para todos os objetos que implementam IDisposable (como conexões e leitores). A 'usando' declaração é traduzida em um bloco try-finally debaixo das cobertas, e garante que Dispose () é chamado, mesmo se ocorrer um erro.

Aqui está um exemplo de trecho de código:

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
            }
        }
    }
}

Outras dicas

Se ocorrer um erro inesperado, redirecionar o usuário para uma página de erro, uma vez que provavelmente irá acontecer na próxima vez também.

Você já olhou em "Uso" declarações para conexões de banco de dados e leitores?

Eu nunca iria redirecionar automaticamente e esperança de que ele vai trabalhar na próxima vez (que você pode entrar em um loop infinito).

Informe o usuário e, opcionalmente, um link para tentar novamente.

Você mesmo pode querer analisar o seu exceção para ver se outra tentativa vai ajudar. Algumas exceções são realmente bugs, e uma outra tentativa não vai ajudar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top