[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 😉


  • Administrator

    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!!!


Anmelden zum Antworten