首页 > 编程语言 >C#如何更新配置文件中的连接字符串

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

时间:2023-04-03 17:46:05浏览次数:38  
标签:Console 配置文件 C# mySqlConnectionStringBuilder WriteLine 字符串 config 连接

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

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

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

 

 

 

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

 

先了解一下 XXSqlConnectionStringBuilder类,它的作用是为创建和管理由 SqlConnection 类使用的连接字符串的内容提供了一种简单方法。

说明:针对不同的数据库,需要将前面的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);

 

运行结果如下:

 

 

更新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         EntityConnectionStringBuilder efb = new EntityConnectionStringBuilder(con2);
2             efb.ProviderConnectionString = mySqlConnectionStringBuilder.ConnectionString;
3             config.ConnectionStrings.ConnectionStrings["con2"].ConnectionString = efb.ConnectionString;
4             config.Save(ConfigurationSaveMode.Modified, false);
5             ConfigurationManager.RefreshSection("connectionStrings");

 

标签:Console,配置文件,C#,mySqlConnectionStringBuilder,WriteLine,字符串,config,连接
From: https://www.cnblogs.com/zhaotianff/p/17283791.html

相关文章

  • Low-Code,一定“low”吗?
    作者:京东保险吴凯前言低代码是一组数字技术工具平台,基于图形化拖拽、参数化配置等更为高效的方式,实现快速构建、数据编排、连接生态、中台服务。通过少量代码或不用代码实现数字化转型中的场景应用创新。本文将重点介绍低代码相关知识,包括低代码的定义与意义、相关概念、行业发......
  • EasyCVR插件工具:如何删除EasyShark的抓包数据?
    在前期的文章中,我们分享了关于EasyCVR平台新增的插件工具,感兴趣的用户可以查看这篇文章:《EasyCVR视频融合平台开放插件功能:支持EasyNTS与EasyShark》。其中,EasyShark是用于抓包的工具,支持在客户端直接抓包查看服务器的SIP消息。但是,有用户反馈,由于经常抓包产生了大量的数据,不知道如......
  • Hystrix(一):为什么@EnableCircuitBreaker和@HystrixCommand能驱动Hystrix
    一、@EnableCircuitBreakerEnableCircuitBreaker源码如下:从源码看出实例化了@EnableCircuitBreaker注解实例化了EnableCircuitBreakerImportSelector这个类。再来看EnableCircuitBreakerImportSelector源码:EnableCircuitBreakerImportSelector继承了SpringFactoryImportSelector,Spr......
  • Freemarker操作字符串
     [b]1、substring[/b](start,end)从一个字符串中截取子串start:截取子串开始的索引,start必须大于等于0,小于等于endend:截取子串的长度,end必须大于等于0,小于等于字符串长度,如果省略该参数,默认为字符串长度。例子:${‘str’?substring(0)}à结果为str${‘str’?substring(1)}à结......
  • 多精度 simulator 中的 RL:一篇 14 年 ICRA 的古早论文
    目录全文快读0abstract1intro2relatedwork3背景&假设3.1RL&KWIK(knowwhatitknows)的背景3.2问题定义4Multi-FidelityBanditOptimization4.1MF寻找最优arm的算法(MF-bandit)4.2一个例子4.3理论证明5Multi-FidelityRL5.1MFRLalgorithm5.2一个例子5.3理论......
  • Java记录唯一性check
    /***记录唯一性check**@paramid主键*@paramentity实体记录,必须实现equals()方法才能验证更新的场合*@paramfields唯一键字段名称*/if(entity==null||fields.length==0){return;}try{@SuppressWarnings("unchecked")......
  • shellcode获取MessageBoxA的地址
    _asm{pushebpmoveax,fs:[30h];获得PEB地址moveax,[eax+0ch];获得LDR地址moveax,[eax+14h];获得PEB_LDR_DATA中InMemoryOrderModuleList的Flinkmovecx,eax;因为eax中的Flink也就是等于LDR_DATA_TABLE_ENTRY......
  • background-color 只填充容器的一半
     关键字的取值:toright  (表示从左往右渐变)toleft    (表示从右往左渐变)totop    (表示从下往上渐变)tobottom (表示从上往下渐变)角度的取值: 0deg  (从下到上totop)  180deg(从上到下tobottom)90deg  (从左到右toright)-90deg......
  • Chrome103版本获取不到sessionStorage
    问题现象:上传附件功能报错,经排查发现,是因为上送字段中userId获取失败,被服务端拒绝请求。userId=window.sessionStorage.getItem('userId')问题暴露阶段:生产环境Chrome103问题原因:上传功能是在新弹开tab页中实现的,Chrome89后,新弹开的tab页默认不再共享sessionStorage。而测试环......
  • @Async配置与使用
    应用场景同步:同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果。异步:异步调用则是只是发送了调用的指令,调用者无需等待被调用的方法完全执行完毕;而是继续执行下面的流程。例如,在某个调用中,需要顺序调用A,B,C三个过程方法;如他们都是同步调用,则需要将他们都顺序......