在Winforms中更改连接字符串

4

我正在开发Win Forms应用程序,并且有一个App Config文件。如何在app config文件的连接字符串部分中进行编写?我的当前App.Config文件是:

  <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
     <add name="MyDbConnection" connectionString="" providerName="System.Data.OleDb" />
</connectionStrings>
</configuration>

我用C#编写的更改连接字符串的代码如下:

var Config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                var connectionStringsSection = (ConnectionStringsSection)Config.GetSection("connectionStrings");
                ConfigurationManager.ConnectionStrings["MyDbConnection"].ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FilePath + "";
                Config.Save();
                ConfigurationManager.RefreshSection("connectionStrings");

然而在第三行代码处生成了一个异常

configuration error exception this configuration is read only

更改连接字符串的代码被称为来自外部类。我不知道应该将代码放在哪里以覆盖IsReadonly()方法。此外,应用配置没有代码后台文件。
2个回答

3

App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <connectionStrings>
      <add name="MyDBConnectionString" providerName="System.Data.SqlClient"
            connectionString="Data Source=localhost;Initial Catalog=MySQLServerDB; Integrated Security=true" />
   </connectionStrings>
</configuration>

当您将连接字符串保存在App.config文件中时,您可以使用System.Configuration.ConfigurationManager类在代码中读取此连接字符串。
ConnectionStringSettings  conSettings = ConfigurationManager.ConnectionStrings["MyDBConnectionString"];

ConnectionStringsSettings类提供以下属性,用于在程序中读取连接字符串设置:

string name = conSettings.Name;
string providerName = conSettings.ProviderName;
string connectionString = conSettings.ConnectionString;

1
在 App.config 文件中编写连接字符串,您可以使用以下方法:
创建两个设置,例如:AppConnectionString(类型:string)和 ServerConnectionString(类型:ConnectionString)。
修改设置代码,在 ServerConnectionString 设置的 get 属性中更改返回值为 AppConnectionString。
通过这样做,您可以修改、保存或重新加载 AppConnectionString 设置,并且当您在应用程序中引用 ServerConnectionString 时,它将返回 AppConnectionString 设置。试一下吧。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接