Die beste Möglichkeit, den OleDbConnection-Status zu überprüfen

9

Offenbar ( MSDN ) manchmal OleDbConnection.ResetState ( ) tut nichts, selbst wenn die Verbindung fehlschlägt, wird OleDbConnection.State immer noch auf Offen gesetzt. Ich suche nach der besten Problemumgehung dafür, so dass, wenn ich den Verbindungsstatus überprüfe, ich vermeiden kann, Ausnahmen auszulösen (solange die Verbindung zwischen der letzten Überprüfung und dem Gebrauchversuch nicht gescheitert ist).

Gibt es nichts Besseres, als jedes Mal eine "nutzlose" SQL-Anweisung zu senden, nur um zu sehen, ob eine Ausnahme ausgelöst wird? Wie stellen Sie sicher, dass Ihre Verbindung geöffnet ist, bevor Sie sie tatsächlich verwenden?

    
David Božjak 09.03.2009, 16:26
quelle

1 Antwort

5

In Ihrem Fall würde ich Folgendes tun:

  1. Machen Sie sich keine Sorgen, ob die Verbindung "wirklich" offen ist, BEVOR Sie es benutzen: es wird die meiste Zeit sowieso sein, und Sie werden eine Menge nutzloser Roundtrips für den Server verschwenden
  2. ABER überprüfen Sie jedes Mal, wenn Sie die Verbindung verwenden, eine Ausnahme (Erstellen Sie Hilfsmethoden, um Kopieren / Einfügen hier zu vermeiden)
  3. Wenn Sie eine Ausnahme haben, senden Sie Ihre "unbrauchbare" Anweisung, um den Zustand der Datenbankverbindung "real" zu überprüfen. Ich würde das tun, weil die Art von Ausnahmen, die Sie bekommen können, wenn die Verbindung zum Server verloren ist, manchmal ziemlich überraschend sein kann (abhängig davon, was zum Zeitpunkt der Unterbrechung der Verbindung passiert)

Hoffe, das hilft.

    
Sébastien Nussbaumer 09.03.2009, 16:49
quelle