ConnectionStringSetting

03/03/2009 - 10:13 von Bernd Lorenz | Report spam
Hallo NG,
ich habe mir ein kleines Projekt erstellt (mit Assistenten), welches auf
eine externe (d.h. nicht lokale) Access.mdb zugreift. Funzt OK.
Der ConnectionString ist in der app.config hinterlegt.
Wie kann ich nun den entsprechenden ConnectionString zur Laufzeit anpassen,
wenn sich der Datenpfad zur Access.mdb geàndert hat.
Dabei möchte ich, dass ehe ein Formular öffnet, also innerhalb der
MyApplication_Startup, auf IO.File.Exist() prüfen und wenn Access.mdb
verschoben ist, per DateiDialog das Verzeichnis ausgewàhlt wird und für die
Anwendung dauerhaft gespeichert wird.
Diese Vorgehensweise sollte funktionieren, wenn ich den ConnectionString im
Code behandelt hàtte, nur da die Assistenten den ConnectionString in meinem
Projekt aus My.settings.<ConnectionString> holen, kann ich diesen nicht
überschreiben, weil read only.

Wie kann ich dieses Problemchen lösen?

Vielen Dank und Gruß Bernd
 

Lesen sie die antworten

#1 Peter Fleischer
03/03/2009 - 11:12 | Warnen spam
"Bernd Lorenz" schrieb im Newsbeitrag
news:erdwVB%

ich habe mir ein kleines Projekt erstellt (mit Assistenten), welches auf
eine externe (d.h. nicht lokale) Access.mdb zugreift. Funzt OK.
Der ConnectionString ist in der app.config hinterlegt.
Wie kann ich nun den entsprechenden ConnectionString zur Laufzeit
anpassen, wenn sich der Datenpfad zur Access.mdb geàndert hat.
Dabei möchte ich, dass ehe ein Formular öffnet, also innerhalb der
MyApplication_Startup, auf IO.File.Exist() prüfen und wenn Access.mdb
verschoben ist, per DateiDialog das Verzeichnis ausgewàhlt wird und für
die Anwendung dauerhaft gespeichert wird.
Diese Vorgehensweise sollte funktionieren, wenn ich den ConnectionString
im Code behandelt hàtte, nur da die Assistenten den ConnectionString in
meinem Projekt aus My.settings.<ConnectionString> holen, kann ich diesen
nicht überschreiben, weil read only.

Wie kann ich dieses Problemchen lösen?



Hi Bernd,
irgendwo im Programm wird mit My.Settings.MeinConnectionString auf den
Eintrag in der Config-Datei zugegriffen. Diesen Zugriff musst du
entsprechend àndern.

Da du mit dem Assistenten arbeitest, wird ein Standardablauf generiert. Wenn
du auf diesen generierten Standardablauf einwirken willst, musst du dir den
passenden Punkt heraussuchen. Da du nicht geschrieben hast, welches
Assistenten du genutzt hast, vermute ich mal, dass du eine DataSource in
Visual Studio 2008 erstellt hast. Das Ergebnis ist im Code ein
TableAdapter.GetData (oder auch Fill). Wenn du willst, dass der TableAdapter
auf einen anderen Datenbankserver zugreifen soll, brauchst du nur vor dem
Fill-Aufruf dem TableAdapter einen anderen ConnectionString zuweisen. Dieses
TableAdapter nutzt dann diesen anderen ConnectionString. Das kann so
aussehen:

Dim ta As New myTableAdapters.xxxTableAdapter
ta.Connection.ConnectionString = "mein neuer ConnectionString"
Return ta.GetData()


Viele Grüsse
Peter

Ähnliche fragen