Question

Je viens de télécharger mon premier ASP.NET (dans le cadre de mon apprentissage de vb.net) et je me suis retrouvé dans un fouillis terrible avec la mise en commun des connexions (des choses amusantes se produisent lorsqu'il y a plus d'un utilisateur de votre site Web), toutes triées maintenant. par une meilleure utilisation des instructions catch (bien l'idée était d'apprendre) MAIS je me demandais si c'était la meilleure méthode / finale, maintenant si l'essai échoue, alors BEAUCOUP des détails sur la page ne sont pas placés / mis à jour Donc, si vous faites un travail de base de données et que la tentative échoue, rechargez-vous la page ... redirigez-vous vers vous-même et espérez que cela fonctionnera la prochaine fois ... ou informez simplement l'utilisateur qu'il y a une erreur et qu'ils doivent réessayer?

Merci

Était-ce utile?

La solution

Vous devez utiliser de manière définitive ' à l'aide de ' pour tous les objets qui implémentent IDisposable (tels que les connexions et les lecteurs). Une instruction 'using' est traduite en un bloc try-finally sous les couvertures et garantit que Dispose () est appelé même en cas d'erreur.

Voici un exemple d'extrait de code:

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

Autres conseils

Si une erreur inattendue se produit, redirigez l'utilisateur vers une page d'erreur car cela se produira probablement également la prochaine fois.

Avez-vous examiné la rubrique "Utilisation de " instructions pour les connexions et les lecteurs de base de données?

Je ne redirigerai jamais automatiquement et espère que cela fonctionnera la prochaine fois (vous pourriez vous retrouver dans une boucle infinie).

Informez l'utilisateur et éventuellement un lien pour le réessayer.

Vous pouvez même vouloir analyser votre exception pour voir si un autre essai vous aidera. Certaines exceptions sont vraiment des bugs, et un autre essai ne va pas aider.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top