可能重複:
VS2005 C# Programmatically change connection string contained in app.config動態配置的app.config在C#中連接到其他數據庫
我已經在我的電腦使用C#創建一個WinForms項目,並希望將項目部署到其他PC上,但我需要更改app.config中的連接字符串以便連接其他PC上的sql服務器數據庫,並且我希望用戶配置連接字符串。
我該如何做到這一點?
可能重複:
VS2005 C# Programmatically change connection string contained in app.config動態配置的app.config在C#中連接到其他數據庫
我已經在我的電腦使用C#創建一個WinForms項目,並希望將項目部署到其他PC上,但我需要更改app.config中的連接字符串以便連接其他PC上的sql服務器數據庫,並且我希望用戶配置連接字符串。
我該如何做到這一點?
如果您爲項目創建了一個設置文件,將會有一個以類型安全方式表示屬性的類。這通常是類似TiddleBits.Properties.Settings.Default
,其中TwiddleBits是您的程序集名稱。
如果您尚未爲您的項目創建設置文件,請執行此操作。它極大地簡化了配置文件的工作。
一旦類存在,就可以像讀取任何其他類一樣讀寫屬性。請記住在完成分配屬性後保存更改,否則將被丟棄。
您可以告訴用戶編輯app.config,或者您可以提供一個UI並使用ConfigurationManager在運行時編輯app.config。
像其他人說,創建自己的配置文件是要走的路。這裏有一些代碼可以幫助
只需在VS中創建一個app.config文件,並將其放在與dll相同的目錄中。它看起來像這樣。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="YourThing" value="Something" />
</appSettings>
</configuration>
然後你可以加載它lke這個。
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);
然後,您可以讀取像這樣的值。
config.AppSettings.Settings["YourThing"].Value;
並保存這樣的值。
config.AppSettings.Settings["YourThing"].Value = "New Value";
config.Save();
機器上的不同數據庫是否存在模式? – 2012-03-30 17:31:40
數據庫是sqlserver 2008 express版本,並且將運行在瘦客戶機服務器上,並且我想將我的書面應用程序部署到服務器,因此每個瘦客戶機都可以使用與數據庫交互的應用程序,但是我想要用戶配置應用程序和數據庫之間的連接 – user1286824 2012-03-30 17:38:08