Announcement

Collapse
No announcement yet.

globale sqlConnection?

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

  • globale sqlConnection?

    Hallo,
    ich fange grad an in C# zu programmieren und jetzt habe ich folgendes Problem:
    Ich habe eine Form1 (Anmeldeform). In dieser Form gibts der Benutzer seine Daten ein. Auf Button-Klick soll eine sqlConnection mit einem SQl-Server verbunden werden. Soweit so gut. Ich möchte aber nun gerne diese Connection global haben. Nach der Anmeldung wird die Form1 unsichtbar und eine Hauptform (Form2) erscheint. Aus dieser Form heraus sollen weitere Formen geöffnet werden. Jetzt möchte ich möglichst für alle Datenbankobjekte (DataSets etc.) in diesen Formen die gleiche sqlConnection wie auf der Form1 verwenden. Leider funktioniert das ja nicht wie im Delphi wo ich bloss die Form1 in die anderen Formen einbinden muss. Mir wäre es sogar lieb wenn die sqlConnection in einer eigenen Klasse (class1.cs) steht. Könnte mir evtl. jemand sagen wie ich das anstellen kann? Selbige Frage trifft auch auf globale Variablen zu.

    Danke.

  • #2
    Hallo Ronny,

    das geht über einen static-member einer Klasse. Z.B. kannst Du eine Klasse wie folgt definieren:

    <PRE>
    public class GlobalAppSettings
    {
    public static string ConnectionString = "...";
    }
    </PRE>

    Dann kann überall in der Anwendung auf den Connectionstring mit

    GlobalAppSettings.ConnectionString

    zugegriffen werden, ohne eine Instanz von GlobalAppSettings zu erzeugen.

    Hth,

    Klau

    Comment


    • #3
      Hallo holster,

      danke für deine Antwort. Habe es gleich ausprobiert und es funktioniert einwandfrei.

      Danke

      Comment


      • #4
        Funktionieren tut das schon, aber ist alles andere als im Sinne vom ADO.NET-Connection Pooling für den SQL-Server :-/

        Wenn du die Connection global halten willst, mach sie aber lieber wieder zu wenn du mit einer Aktion fertig bist, dann geht sie in den Connection-Pool zurück.

        In C# werden Connections eher on-the-fly im Code erstellt. Der Data Provider in ADO.NET für MS SQL-Server implementiert das Pooling und stellt es Dir ohne weiteres zutun zur Verfügung.

        ADO.NET is im Vergleich zu ADO "Classic" jetzt disconnected, muss auch immer wieder daran denken ;-

        Comment


        • #5
          Gehört zwar nicht zum Thema, aber mich würde interessieren wie Du deine DB Daten so "geheim" halten willst? Bei jeder Verbindung werden ja Benutzer und Passwort im Klartext übertragen...

          Gruß,

          Tim

          Comment

          Working...
          X