Announcement

Collapse
No announcement yet.

C# mysql verbindung öffnen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • C# mysql verbindung öffnen

    Hallo,

    ich habe momentan folgenden code:

    Code:
    public void ConnectToMySql(String server, String database, String user, int port){
    	mysqlServerSettings = "SERVER="+server+";"+"DATABASE="+database+";"+"UID="+user+";";
    	connection = new MySqlConnection(mysqlServerSettings);
    }
    Code:
    public int selectAcccount(String username, String password) {
    connection.Open();
    Execute Command
    connection.Close();
    }
    Funktionieren tut ja alles super...

    Nur lautet meine Frage ob es wirklich sein muss, dass ich für jeden Befehl/Funktion die mysql Verbindung öffne und wieder schließe.

    Kann ich die nicht einfach einmal in ConnectToMysql öffnen und für immer offen lassen?

    Es handelt sich bei der Application um ein Onlinespiel, also bleibt die Verbindung zur MySQL Datenbank eh bestehen.

    Oder würde es zu irgendwelchen Fehlern kommen? Zb das die Verbindung sich automatisch schließt wegen Timeout, und dann die Befehle ins nichts laufen?

    Vielen Dank

  • #2
    Auch hallo,

    da könnte man noch einiges optimieren, vgl. mit mycsharp.de - Parameter von SQL-Befehlen. Und die Verbindung zur DB sollte in einem try-catch-Block erfolgen.
    MfG
    Cheat-Sheets for Developers / Programming Quotes

    Comment


    • #3
      Vielen Dank für deine Antwort..

      selbstverständlich habe ich den Befehl in einem Try blog.. ich wollte nur die syntax deutlich machen wie meine befehle aufgebaut sind und habe der überslichtlichkeits halber den rest weggelassen, da es mir nur um die frage geht, ob die verbindung offen bleiben sollte oder nicht.

      Comment


      • #4
        Sicherlich kann die mehrfach genutzt werden
        Christian

        Comment


        • #5
          Grundsätzlich gilt: Unter .NET wird eine Verbindung immer nur kurzfristig geöffnet und sofort nach Verwendung wieder geschlossen. Man geht sogar noch weiter: Die DbConnection sollte in einen using-Block eingebunden werden, weil nicht nur Close, sondern Dispose ausgeführt werden sollen. Das schnelle "Wieder-Verbinden" erfolgt automatisch durch ConnectionPooling.

          Bei Online-Aufgaben könnte es ein wenig anders aussehen (da habe ich keine Ahnung). Aber wegen des inneren Aufbaus einer Online-Anwendung glaube ich das eher nicht.

          Gruß Jürgen

          Comment


          • #6
            Hallo,

            Bei Online-Aufgaben könnte es ein wenig anders aussehen (da habe ich keine Ahnung). Aber wegen des inneren Aufbaus einer Online-Anwendung glaube ich das eher nicht.
            Da auch für Online-Aufgaben die Trennung von UI und Logik gelten sollte heißt das dass die UI nichts von der konkreten Implementierung der Datenzugriffsschicht wissen soll. Und somit stimmt das was Jürgen in seiner Antwort geschrieben hat auch für Online-Aufgaben.

            Wird eine Online-Aufgabe per RAD (~Drag&Drop) erstellt stimmt das auch. Das "kurzfristig" bezieht sich dann eben auf das Rendern der Seite (~Page-Load Ereignis).


            mfG Gü
            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

            Comment


            • #7
              Vielen Dank für eure Antworten!

              Comment


              • #8
                Originally posted by Jürgen Thomas View Post
                Grundsätzlich gilt: Unter .NET wird eine Verbindung immer nur kurzfristig geöffnet und sofort nach Verwendung wieder geschlossen. Man geht sogar noch weiter: Die DbConnection sollte in einen using-Block eingebunden werden, weil nicht nur Close, sondern Dispose ausgeführt werden sollen. Das schnelle "Wieder-Verbinden" erfolgt automatisch durch ConnectionPooling.
                Hallo!

                Ich mach mal hier weiter, da dies eher meinem Problem entspricht.

                Ich habe jetzt für jedes Mal, wenn ich eine Verbindung zur Datenbank benötige, eine Connect()- und eine Close()-Methode. Diese würde ich also gar nicht brauchen, oder?

                Ich starte mein Programm per Login-Fenster, wo man sich logischerweise zur Datenbank verbinden muss (d.h. dort wird das erste Mal eine Verbindung aufgebaut).

                Muss ich dann in den restlichen Programmteilen gar keine DB-Verbindung herstellen? Oder anders gesagt: Kann ich eine Klasse schreiben, die die Verbindung regelt?

                Falls ja: Wie stelle ich unter Zuhilfenahme dieser Klasse in den anderne Klassen die Verbindung her?

                Comment

                Working...
                X