C#如何更新配置文件中的连接字符串

以MySql为例 ,其它数据库使用方法一样。

说明:正常情况下,如果数据库在本机,尽量使用Windows身份验证,如果不在本机,连接字符串里的密码也是需要加密存储,本文只做演示,所以直接使用明文密码。

 

如下在App.config中添加了两条如下连接字符串

 

 

 

第一条是使用ADO.Net使用的连接字符串,第二条是EF使用的连接字符串。

 

XXSqlConnectionStringBuilder类

先了解一下 XXSqlConnectionStringBuilder类,它可以方便的对连接字符串进行操作。

说明:针对不同的数据库,需要将前面的XX修改为不同的数据库名称,如使用的是MySQL数据库,就是MySqlConnectionStringBuilder,SQL Server就是SqlConnectionStringBuilder

它的使用方法如下:

通过构造函数传入连接字符串,然后可以对连接字符串中的键值进行操作。

1 MySqlConnectionStringBuilder mySqlConnectionStringBuilder =new MySqlConnectionStringBuilder("连接字符串");
 1             //输出
 2             Console.WriteLine(mySqlConnectionStringBuilder.Server); 
 3             Console.WriteLine(mySqlConnectionStringBuilder.Port);
 4             Console.WriteLine(mySqlConnectionStringBuilder.Database);
 5             Console.WriteLine(mySqlConnectionStringBuilder.UserID);
 6             Console.WriteLine(mySqlConnectionStringBuilder.Password);
 7 
 8             //更新
 9             mySqlConnectionStringBuilder.Server = "localhost";
10             mySqlConnectionStringBuilder.Port = 10250;
11             mySqlConnectionStringBuilder.Database = "ttt";
12             mySqlConnectionStringBuilder.UserID = "testuser";
13             mySqlConnectionStringBuilder.Password = "abc";
14 
15             //获取更新后的连接字符串
16             var newCon = mySqlConnectionStringBuilder.ConnectionString;
17             Console.WriteLine(newCon);

 

运行结果如下:

 

Configuration类

Configuration类可以对程序配置文件进行操作。在更新连接字符串时

需要以下步骤:

1、调用 ConfigurationManager.OpenExeConfiguration 打开当前程序的配置文件,得到Configuration对象

2、通过Configuration对象更新连接字符串

3、保存到配置文件

4、刷新配置文件节点

 

更新ADO.Net连接字符串

1             //保存到当前程序配置文件
2             Configuration config = ConfigurationManager.OpenExeConfiguration(System.Reflection.Assembly.GetExecutingAssembly().Location);
3             config.ConnectionStrings.ConnectionStrings["con1"].ConnectionString = newCon;
4             config.Save(ConfigurationSaveMode.Modified, false);
5             ConfigurationManager.RefreshSection("connectionStrings");

 

更新EF连接字符串

1             Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
2             EntityConnectionStringBuilder efb = new EntityConnectionStringBuilder(con2);
3             efb.ProviderConnectionString = mySqlConnectionStringBuilder.ConnectionString;
4             config.ConnectionStrings.ConnectionStrings["con2"].ConnectionString = efb.ConnectionString;
5             config.Save(ConfigurationSaveMode.Modified, false);
6             ConfigurationManager.RefreshSection("connectionStrings");

 

示例代码

 

参考资料:

Configuration 类

https://learn.microsoft.com/zh-cn/dotnet/api/system.configuration.configuration?view=dotnet-plat-ext-7.0

SqlConnectionStringBuilder 类

https://learn.microsoft.com/zh-cn/dotnet/api/system.data.sqlclient.sqlconnectionstringbuilder?view=dotnet-plat-ext-6.0

posted @ 2023-04-03 17:37  zhaotianff  阅读(189)  评论(0编辑  收藏  举报