Announcement

Collapse
No announcement yet.

Connectionstring aus My.Settings löschen

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

  • Connectionstring aus My.Settings löschen

    Hallo,

    ich habe für den Entwurf meiner Applikation den Designer zum Einbinden von Datatables und zum Bearbeiten meines Datasets benutzt.
    Dabei bekam ich irendwann die Frage gestellt, ob der ConnectString in den allg. Einstellungen gespeichert werden soll. Naiv habe ich das zugelassen.
    Ich würde ungern eine Anwendung ausliefern, in welcher der vollst. Connectstring einschl. User/Password in einer lesbaren und editierenbaren xml-Datei vorliegt.
    Wenn ich das Teil nun einfach lösche, bekomme ich allerdings böse Fehlermeldungen. Weiterhin ist der generierte Connectstring readonly. Ich kann ihn also im Programm nicht neu setzen.

    Hat jemand eine Idee, wie ich hier vorgehen könnte.
    (Eine Anmeldesequenz habe ich schon. )

    Dank vorab..


    mfg dbfreak

  • #2
    Im DatasetDesigner solltest du die ConnectionModifier Property aller TableAdapter auf public stellen. Damit ist die Connection Property danach im Code zuweisbar.
    Wenn du die zugewiesen hast ist egal was in den Settings steht da die Settings dann nicht mehr benutzt werden. Du musst nur halt jedes mal wenn du einen TableAdapter erstellst dran denken auch die Connection zuzuweisen.

    Comment


    • #3
      ConnectionModifier auf Public stellen

      Vielen Dank für den Hinweis. Das klingt sehr logisch. Allerdings fehlt mir die Kenntnis, wie ich im DatasetDesigner diese Eigenschaft den TableAdaptern zuweisen kann. Beim Anzeigen der Eigenschaften wird mir die ConnectionModifier Property nicht angeboten. Hier bekomme ich nur die Kategorie Sonstiges (Casesensitiv/Lokalität/Name).

      ==> Ups, ich habe die Einstellung jetzt. Man muss eben wirklich auf die TabelAdapter-Sektion selektieren.
      Dann mach ich mich ans Werk.

      mfg dbfreak

      Comment


      • #4
        Zuweisung der Connection

        Also die Umstellung auf Pubic habe ich nun durchgefrührt.
        Kannst Du mir bitte noch einen Hinweis geben, wie ich die Connection Property nun am besten zuweise, ohne die Methoden des DatasetDesigners zu verlieren?
        Denn die Settigns bleiben ja nach wie vor readonly.


        und Dank vorab..

        Comment


        • #5
          Kannst Du mir bitte noch einen Hinweis geben, wie ich die Connection Property nun am besten zuweise.
          Wie man halt Properties zuweist.

          Code:
          TableAdapter.Connection = new OleDBConnection("MeinLieberConnectionString");
          Denn die Settings bleiben ja nach wie vor readonly.
          Beim Rollout der Anwendung die ConnectionStrings manuell aus der App.Config werfen. Wenn du es vorher machst wird dein Designer nicht mehr funktionieren bzw. wird jedesmal einen neuen ConnectionString in der App.Config anlegen wollen.

          Comment


          • #6
            Hallo,

            ja das man den Connectstring so zuweisen kann, weiß ich. Ich hoffte, dass es vielleicht auch eine zentrale Möglichkeit gibt und dass man die Settings vorher bereinigen kann. Aber ok. Dann muss es so sein.

            Also vielen Dank

            Comment


            • #7
              Warum sollte das nicht zentral gehen? Bau Dir doch einfach eine ConnectionFactory. Diese liefert Dir immer eine gültige Connection zurück. Diese verwendest Du überall wo Du eine Connection brauchst. Musst Du nun irgendwas an der Connection selbst ändern, brauchst Du nur die Factory ändern und die neue Connection wird im Programm überall automatisch verwendet.

              Comment


              • #8
                Hi fanderlf,

                nun vielleicht ist mein Verständnis ja nicht richtig. Der Datasetdesigner stellt als Defaultconnectstring den String aus My.Settings ein. Mit der Einbindung der Bindingsource(über Designer) wird automatisch die Fill -Anweisung je Form erzeugt. Wenn nun ein anderer Connectionstring zieht ( der natürlich zentral bei der Anmeldung gebildet wird), muss dieser vor den entsprechenden Fill-Anweisungen nun zugewiesen werden.
                Was meinst Du? Ist das ok?

                Comment


                • #9
                  Die DataSets muss man soweit ich weiss immer manuell füllen. Und vor dem füllen kannst Du ja dem entsprechenden TableAdapter die passende Connection zuweisen. Je nach größe des Programms kann man sich natürlich auch überlegen hierfür eine Factory zu bauen bzw. einen IoC Container zu verwenden.

                  Comment


                  • #10
                    Hallo dbfreak,

                    vielleicht hilft Dir dieser Thread, in dem gezeigt wird, wie man den ConnectionString zur Laufzeit in den AppSettings ändern kann.

                    Gruß
                    Peter

                    Comment


                    • #11
                      Vielen Dank für Eure Hilfe. Habe mir den Thread angeschaut. Eine ähnliche Beschreibung habe ich in dem Buch VB 2008 von Kühnel/Leibbrandt gefunden.

                      Also es läuft jetzt alles. Den Connectstring bilde ich mit der Anmeldung des Users und halte Ihn dann global vor.

                      Comment

                      Working...
                      X