Lange habe ich rumsuchen dürfen, wie ich den ConnectionString von einem Dataset dynamisch in der Anwendung ändern kann und nun habe ich eine Lösung:
Was will ich denn eigentlich genau?
In der app.config wird die Einstellung zum Connection String abgelegt. Dieses ist prima, da man dieses manuell ändern kann, wenn dies notwendig ist. Nur kann es aber sein, dass der User einen von drei DB Servern beim Start auswählt (Test, Entwicklung, Produktion) und man dann den Connection String dynamisch ändern muss, da man bei dem Dataset nur eine Variable aus dem My.Settings hart verdrahten kann.
Wieso ist das ein Problem?
Nun stößt man erst darauf, dass die Settings unter My.Settings readOnly sind, wenn sie für eine Applikation deklariert sind. Einen Connection String kann man aber nur für eine Anwendung deklarieren und er ist somit IMMER ReadOnly.
Die Lösung
Tja daher muss man den Workaround von der folgenden Seite nehmen, um das Problem zu Lösen. Für meine Anwendung hat das ohne Probleme Funktioniert : http://www.mycsharp.de/wbb2/print.php?threadid=16723&page=1 . Hier kann dann der User den ConnectionString abändern aus der Anwendung per Funktion. Die My.Settings werden nach der Änderung neu geladen. Ob dieses bei häufigem Wechseln und eine großen Userzahl Probleme macht kann ich nicht sagen, da 99% der Zugriffe Produktion sein werden und hier der Server bis zu einer Migration sicher nicht geändert wird...