c# - 更改 Winforms 中的连接字符串

标签 c# winforms visual-studio-2010 configuration app-config

我正在开发 win 表单并且我有应用程序配置文件。如何写入应用程序配置文件的连接字符串部分? 我当前的 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");

但是在第 3 行生成了异常

configuration error exception this configuration is read only

更改连接字符串的代码是从外部类调用的。我不知道应该将代码放在哪里以覆盖 IsReadonly() 方法。 应用配置也没有代码隐藏文件。

最佳答案

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;

关于c# - 更改 Winforms 中的连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14291658/

相关文章:

c# - 在 RTF 字符串中设置格式?

c# - 使用 log4net 在日志文件中写入原始文本

c# - gridview 中的 ASP.NET C# 代码按钮

c# - 两个 HTML 的比较

c# - 通过 CUDAfy 在 OpenCL 中启用 double

c# - 分部类中的表单控件属性

c# - Windows 窗体文本在离开事件时更改

c# - 如何获取C#图表的缩放事件

visual-studio-2010 - 脚手架/在初始值设定项中生成对象的属性

C++ 模板 dll => 未解析的外部