2009-03-09 8 views
8

Apparemment (MSDN) parfois OleDbConnection.ResetState() ne fait rien, donc même si la connexion échoue OleDbConnection.State sera toujours défini sur Open. Je suis à la recherche de la meilleure solution pour cela, de sorte que lorsque je vérifie l'état de la connexion, je peux éviter de lever des exceptions (tant que la connexion n'a pas échoué entre la dernière vérification et la tentative d'utilisation).Meilleure façon de vérifier l'état OleDbConnection

N'y a-t-il rien de mieux que d'envoyer une instruction SQL "inutile" à chaque fois pour voir si une exception est levée? Comment vous assurez-vous que votre connexion est ouverte avant de l'utiliser?

+0

C'est une très bonne question. –

+0

@Robert - C'est vraiment le cas! –

Répondre

5

Dans votre cas, je ferais ce qui suit:

  1. Ne vous embêtez pas être sûr si la connexion est « vraiment » ouvert avant de l'utiliser: il sera la plupart du temps de toute façon, et vous épargnez beaucoup d'allers-retours inutiles au serveur
  2. MAIS vérifiez toute exception chaque fois que vous utilisez la connexion (créez des méthodes d'assistance pour éviter de copier/coller ici)
  3. Si vous avez une exception, envoyez votre instruction "inutile" pour vérifier la connexion de la base de données "réel" état. Je ferais cela parce que le type d'exceptions que vous pouvez obtenir lorsque la connexion au serveur est perdue peut parfois être assez surprenant (en fonction de ce qui se passe au moment où la connexion est rompue)

Espérons que cela aide.

Questions connexes