Pregunta

Acabo de subir mi primer ASP.NET (como parte de mi aprendizaje de vb.net) y me metí en un lío horrible con la agrupación de conexiones (cosas divertidas suceden cuando hay más de 1 usuario de su sitio web) todo ordenado ahora mediante un mejor uso de las declaraciones try catch (bueno, la idea era aprender) PERO me preguntaba si este es el mejor / último método, ahora si el intento falla, entonces MUCHOS detalles en la página no se colocan / actualizan , así que si está haciendo un trabajo de base de datos y el intento falla, ¿vuelve a cargar la página ... redirige a sí mismo y espera que funcione la próxima vez ... o simplemente informa al usuario que hubo un error y deberían intentarlo de nuevo?

Gracias

¿Fue útil?

Solución

Definitivamente debe usar las declaraciones ' using ' para todos los objetos que implementan IDisposable (como conexiones y lectores). Una instrucción 'using' se traduce en un bloque try-finally debajo de las cubiertas, y asegura que se llame a Dispose () incluso si se produce un error.

Aquí hay un ejemplo de fragmento 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
            }
        }
    }
}

Otros consejos

Si se produce un error inesperado, redirija al usuario a una página de error, ya que probablemente también ocurrirá la próxima vez.

¿Ha investigado " Uso de " declaraciones para conexiones de bases de datos y lectores?

Nunca redirigiría automáticamente y espero que funcione la próxima vez (podría entrar en un bucle infinito).

Informar al usuario y, opcionalmente, un enlace para volver a intentarlo.

Incluso es posible que desee analizar su excepción para ver si otro intento lo ayudará. Algunas excepciones son realmente errores, y otro intento no ayudará.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top