在C#中动态配置app.config以连接到其他数据库

时间:2012-03-30 17:30:14

标签: c# winforms configuration

  

可能重复:
  VS2005 C# Programmatically change connection string contained in app.config

我已经使用C#在我的PC上创建了一个WinForms项目,并希望将项目部署到其他PC上,但我需要更改app.config中的连接字符串,以便连接其他PC中的sql sever数据库,我希望用户配置连接字符串。

我该如何做到这一点?

4 个答案:

答案 0 :(得分:5)

如果您为项目创建了一个设置文件,则会有一个以类型安全的方式表示属性的类。这通常类似于TiddleBits.Properties.Settings.Default,其中 TwiddleBits 是您的程序集名称。

如果您尚未为项目创建设置文件,请执行此操作。它极大地简化了配置文件的使用。

一旦类存在,您就可以像任何其他类一样读写属性。只需记住在完成属性分配后保存更改,否则它们将被丢弃。

答案 1 :(得分:3)

像其他人一样说创建自己的配置文件是要走的路。以下是一些可能有用的代码

只需在VS中创建一个app.config文件,并将其放在与dll相同的目录中。它看起来像这样。

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

然后你可以加载它。

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();

答案 2 :(得分:2)

您可以告诉用户编辑app.config,或者您可以提供UI并使用ConfigurationManager在运行时编辑app.config。

Edit app config at runtime

Update app.config system.net setting at runtime

答案 3 :(得分:1)