Frage

Anscheinend ( MSDN ) manchmal OleDbConnection.ResetState () tut nichts, also auch wenn die Verbindung OleDbConnection.State nicht noch Öffnen gesetzt werden. Ich bin auf der Suche für die beste Abhilfe für diesen, so dass, wenn ich Verbindungszustand überprüfe ich vermeiden kann Ausnahmen (solangee Verbindung nicht zwischen der letzten Prüfung und Nutzungsversuch fehlgeschlagen) zu erhöhen.

Gibt es nichts Besseres als eine „nutzlose“ SQL-Anweisung jedes Mal zu senden, nur um festzustellen, ob eine Ausnahme ausgelöst wird? Wie Sie sicherstellen, dass Ihre Verbindung offen ist, bevor Sie wirklich verwenden?

War es hilfreich?

Lösung

In Ihrem Fall ich folgendes tun würde:

  1. Kümmern Sie sich nicht sicher sein, wenn die Verbindung „wirklich“ vor der Verwendung geöffnet ist: es die meiste Zeit sowieso sein wird, und Sie werden eine Menge nutzloser Roundtrips zum Server
  2. verschonen
  3. , aber überprüfe für jede Ausnahme jedes Mal, wenn Sie die Verbindung verwenden (create Hilfsmethoden copy / paste hier zu vermeiden)
  4. Wenn Sie eine Ausnahme haben, dann „nutzlos“ Anweisung senden, um die Datenbankverbindung „echten“ Zustand zu überprüfen. Ich würde das tun, weil die Art von Ausnahmen können Sie erhalten, wenn die Verbindung zum Server manchmal verloren ist ziemlich überraschend sein kann (je nachdem, was zur Zeit geschieht die Verbindung unterbrochen wird)

Hope, das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top