2012-03-30 5 views
2

Mögliche Duplizieren verbinden:
VS2005 C# Programmatically change connection string contained in app.configKonfigurieren Sie die app.config dynamisch in C# zu anderer Datenbank

ich geschaffen habe ein WinForms-Projekt in meinem PC mit C# und möchte Implementieren Sie das Projekt auf anderen PCs, aber ich muss die Verbindungszeichenfolge in der app.config ändern, um die SQL Server-Datenbank in anderen PCs zu verbinden, und ich möchte die Benutzer die Verbindungszeichenfolge konfigurieren.

Wie kann ich das erreichen?

+0

Gibt es ein Muster für die verschiedenen Datenbanken auf den Computern? –

+0

Die Datenbank ist SqlServer 2008 Express Edition und wird auf einem Thin Client Server laufen, und ich möchte meine geschriebene Anwendung auf dem Server bereitstellen, so dass jeder Thin Client die Anwendung verwenden kann, die mit der Datenbank interagiert, aber ich möchte die Benutzer zum Konfigurieren der Verbindung zwischen der Anwendung und der Datenbank – user1286824

Antwort

5

Wenn Sie eine Einstellungsdatei für Ihr Projekt erstellt haben, gibt es eine Klasse, die die Eigenschaften typsicher darstellt. Dies ist normalerweise so etwas wie TiddleBits.Properties.Settings.Default, wobei TwiddleBits Ihr Assemblyname ist.

Wenn Sie keine Einstellungsdatei für Ihr Projekt erstellt haben, tun Sie es. Es vereinfacht das Arbeiten mit Konfigurationsdateien erheblich.

Sobald die Klasse existiert, können Sie Eigenschaften wie jede andere Klasse lesen und schreiben. Denken Sie daran, Ihre Änderungen zu speichern, sobald Sie die Eigenschaften zugewiesen haben, oder sie werden verworfen.

3

Wie schon andere gesagt haben Ihre eigene Konfigurationsdatei zu erstellen ist der Weg zu gehen. Hier ist ein Code, der helfen kann

Erstellen Sie einfach eine app.config-Datei in VS und legen Sie es in das gleiche Verzeichnis wie DLL. Es wird ungefähr so ​​aussehen.

<?xml version="1.0" encoding="utf-8" ?> 
     <configuration> 
     <appSettings> 
     <add key="YourThing" value="Something" /> 
     </appSettings> 
    </configuration> 

Dann können Sie es laden.

string appPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); 

     string configFile = System.IO.Path.Combine(appPath, "App.config"); 
     ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap(); 
     configFileMap.ExeConfigFilename = configFile; 

     System.Configuration.Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None); 

Sie können dann Werte wie folgt lesen.

config.AppSettings.Settings["YourThing"].Value; 

Und speichern Sie Werte wie folgt.

config.AppSettings.Settings["YourThing"].Value = "New Value"; 
config.Save(); 
Verwandte Themen