网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

ConnectionstringsinADO.NET-创新互联

背景

说PowerShell需要读取项目的system.propertites文件,从中取出jdbc的连接字符串,然后拼接ado.net使用的连接字符串,然后连接数据库查询特定表,得到某个业务数据。Connectionstring
sinADO.NET

实现

jdbc的连接字符串如下

创新互联专业为企业提供新和网站建设、新和做网站、新和网站设计、新和网站制作等企业网站建设、网页设计与制作、新和企业网站模板建站服务,10多年新和做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
jdbc.url=jdbc:sqlserverL//localhost:1433;databaseName=YOURDB
jdbc.username=USERNAME
jdbc.password=PASSWORD

用PowerShell这么读取所在行

Select-String -Path $FilePath -Pattern "jdbc.url=" #返回对象,OBJ.Line才是字符串
Select-String -Path $FilePath -Pattern "jdbc.username="
Select-String -Path $FilePath -Pattern "jdbc.password="

然后通过Replace可以得到ServerName, DBName, UserName, Password
最后拼接ADO.NET需要的连接字符串

[string]::Format("server={0};database={1};uid={2};pwd={3}",ServerName, DBName, UserName, Password);

问题及解决

客户的密码中包含分号,于是这个连接串就有问题了。
因为连接字符串本身就是一个分号分割的kv组。

A connection string is a semicolon-delimited list of key/value parameter pairs:

解决方案官方说了,用单引号或者双引号包起来

it must be enclosed in single or double quotation marks.

我们改为用单引号包起来

[string]::Format("server={0};database={1};uid={2};pwd='{3}'",ServerName, DBName, UserName, Password);

问题解决了
我们马上想到,那么密码中有单引号怎么办?
官方也说了

You can also escape the enclosing character by using two of them together

所以我们修改为

[string]::Format("server={0};database={1};uid={2};pwd='{3}'",ServerName, DBName, UserName, Password.Replace("'","''"));

参考

https://docs.microsoft.com/en-us/sql/connect/ado-net/connection-strings?view=sql-server-ver15#connection-string-syntax


当前题目:ConnectionstringsinADO.NET-创新互联
标题路径:http://bjjierui.cn/article/dsppgp.html

其他资讯