[gelöst] Datenbankzugriff nach Verbindungsunterbrechung
-
Hallo,
ich habe ein Programm, welches alle 2 Minuten Daten in eine Datenbank schreibt. Wenn nun die Datenbank kurz "weg" war, also nicht mehr erreichbar ist und dann wieder aktiv wird, dann kann ich zwar die Verbinung herstellen, aber wenn ich die folgenden Zeilen ausführe, wird eine Exception ausgelöst.
cmd = new PsqlCommand(stringSpeichern.ToString(), psqlLZConn); //Ausführen des Insertbefehls cmd.ExecuteNonQuery();
Löst die Exception aus:
cmd.ExecuteNonQuery();
Exception: Über das Ende des Streams kann nicht gelesen werden
Gibt es eine Möglichkeit, dieses Problem zu beheben, ohne das Programm neu zu starten?
Für Ideen und Anregungen bin ich dankbar
-
Du solltest vielleicht zeigen, wie du die Verbindung neu etablierst. Scheint, dass sich das Problem eher dort befindet, als in diesen nichts aussagenden Zeilen, welche du hier präsentierst.
Meine Glaskugel ist leider in der Reperatur
Grüssli
-
Also das ist der Code, bis zu meinem Problem (dabei ist mir gerade aufgefallen, dass es vorhin die falsche Stelle war, denke, dass das aber nichts an dem Problem ändert
)
PsqlConnection psqlLZConn = new PsqlConnection(); PsqlCommand cmd = null; psqlLZConn.ConnectionString = "ServerDSN=WMMEBDE;UID=;PWD=;Server=DEALSSRV151"; psqlLZConn.Open(); cmd = new PsqlCommand("SELECT top 1 * FROM \"LZD_2\" where maschinennid like '" + maschine + "%' AND status = 3 order by startdatum desc, startuhrzeit desc", psqlLZConn); psqlLZReader = cmd.ExecuteReader();
Die Verbindung kann noch hergestellt werden. Nach dem Öffnen ändert sich der auch der Status der Connection auf "open". Deswegen habe ich das Öffnen nicht mit aufgeführt.
Bevor ich die Datenbank ausschalte, wurde der oben aufgeführte Select - Befehl schon einmal ausgeführt. Kann es damit was zu tun haben? Habe etwas über Verbindungspooling gelesen. Bin mir aber nicht sicher, ob es damit was zu tun hat.
-
Krümel1411 schrieb:
Bevor ich die Datenbank ausschalte, wurde der oben aufgeführte Select - Befehl schon einmal ausgeführt. Kann es damit was zu tun haben? Habe etwas über Verbindungspooling gelesen. Bin mir aber nicht sicher, ob es damit was zu tun hat.
Probiere es doch mal aus, vllt
Pooling=False;
im ConnString mit angeben.
-
Danke. Habe das mit dem Pooling vorher mal ausprobiert, aber an die falsche Stele geschrieben.
Jetzt funktioniert es super
Vielen Dank!!!