TinTin Geschrieben 12. März 2008 Geschrieben 12. März 2008 Nach langer Zeit nochmal ein fröhliches Servus, ich habe von einem Kollegen, nein der ist nicht mehr im Unternehmen, ein C# Projekt bekommen. Dieses ist ein mit dem VS2005 Assistenten erstelltes OLEBD Projekt welches auf eine *.mdb zugreift. So weit ,so gut. Der Pfad zu der Access DB ist wohl in der Datei 'app.config' fest verdratet. <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> </configSections> <connectionStrings> <add name="Kunden.Properties.Settings.kundenConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\kunden.mdb;Persist Security Info=True" providerName="System.Data.OleDb" /> </connectionStrings> </configuration> Ich würde nun gerne, ohne dass ich das Projekt groß verändern muß, die Datenbankverbindung zur Laufzeit beeinflussen können. Etwa durch eine *.ini, in der ich den Pfad zur DB hinterlege und dann den Connectionstring beim Start der Anwendung zusammenbaue. Hat jemand eine Idee wo ich da am geschicktesten anfassen muss/sollte? Der Connectionstring ist hier hinterlegt global::Kunden.Properties.Settings.Default.kundenConnectionString Da kann ich aber nichts überschreiben. Zitieren
TDM Geschrieben 12. März 2008 Geschrieben 12. März 2008 global::Kunden.Properties.Settings.Default.kundenConnectionString Da kann ich aber nichts überschreiben. Wieso nicht? Am Ende das Save vergessen? Zitieren
TinTin Geschrieben 12. März 2008 Autor Geschrieben 12. März 2008 global::Kunden.Properties.Settings.Default.kundenConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=z:\\kunden.mdb;Persist Security Info=True"; Meldung beim Erstellen: Kunden.Properties.Settings.kundenConnectionString" kann nichts zugewiesen werden -- sie sind schreibgeschützt. Zitieren
TDM Geschrieben 12. März 2008 Geschrieben 12. März 2008 Ahja, gesehen wo ran es liegt. Mach ein Usersetting draus. Application-scope settings sind read-only. Zitieren
TinTin Geschrieben 12. März 2008 Autor Geschrieben 12. März 2008 Ahja, gesehen wo ran es liegt. Mach ein Usersetting draus. Application-scope settings sind read-only. Wie, Wo Was??? C# ist noch nicht meine Welt. Zitieren
TDM Geschrieben 12. März 2008 Geschrieben 12. März 2008 Im Projekt klickst du doppelt auf die Properties. Dann müsste ein Fenster für die Einstellungen mit deren Name, Typ etc. aufgehen. Da wählst du in Bereich einfach "Benutzer" statt "Anwendung" aus. Zitieren
TinTin Geschrieben 12. März 2008 Autor Geschrieben 12. März 2008 Im Projekt klickst du doppelt auf die Properties. Dann müsste ein Fenster für die Einstellungen mit deren Name, Typ etc. aufgehen. Da wählst du in Bereich einfach "Benutzer" statt "Anwendung" aus. Ich kann da nichts auswählen wenn 'Verbindungszeichenfolge' gewählt ist. Zitieren
TDM Geschrieben 12. März 2008 Geschrieben 12. März 2008 Ach du hast das so gemacht... Nuja, du könntest es einfach auf "string" umschreiben, aber keine Ahnung, welche Auswirkungen das dann auf deinen Quelltext hat. Könnte sein, da geht manches nicht mehr. Zitieren
TinTin Geschrieben 12. März 2008 Autor Geschrieben 12. März 2008 Ach du hast das so gemacht... Was meinst damit? ICH hab gar nichts gemacht, ich hab nur den Ärger damit. ;-) Anwendungsspezifische Einstellungen (z. B. Verbindungszeichenfolgen) sind der Anwendung zugeordnet. Benutzer können sie zur Laufzeit nicht ändern. Das sagt die MSDN zu dem Thema Zitieren
TDM Geschrieben 12. März 2008 Geschrieben 12. März 2008 Ok, dann war es halt der vor dir. Ja, das ist mir schon klar, lt. MSDN ist eine Verbindungszeichenfolge immer konstant, deswegen mag ich diesen "Typ" nicht. Ich nehme meistens einen String als Property und bastel mir den aus Einstellungen zusammen, da ich meine Datenbankanbindung auch immer dynamisch schreibe. Wie gesagt, als "string" und Bereich "Benutzer" sollte das eigentlich passen, denn eine Verbindungszeichenfolge ist in meinen Augen auch nur ein string. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.