Question

Apparemment ( MSDN ) Parfois, OleDbConnection.ResetState () ne fait rien. Ainsi, même en cas d'échec de la connexion, OleDbConnection.State sera toujours défini sur Open. Je recherche la meilleure solution de contournement pour cela. Ainsi, lorsque je vérifie l'état de la connexion, je peux éviter de générer des exceptions (tant que la connexion n'a pas échoué entre la dernière vérification et la tentative d'utilisation).

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

Était-ce utile?

La solution

Dans votre cas, je ferais ce qui suit:

  1. Ne vous inquiétez pas de savoir si la connexion est "vraiment". ouvrez AVANT de l'utiliser: ce sera la plupart du temps de toute façon, et vous épargnerez 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 les copier / coller ici)
  3. Si vous avez une exception, envoyez votre "" inutile". instruction de vérification de la connexion à la base de données " real " Etat. Je le ferais 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)

J'espère que cela vous aidera.

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