ConnectionstringsinADO.NET-創(chuàng)新互聯(lián)

背景

說PowerShell需要讀取項(xiàng)目的system.propertites文件,從中取出jdbc的連接字符串,然后拼接ado.net使用的連接字符串,然后連接數(shù)據(jù)庫查詢特定表,得到某個(gè)業(yè)務(wù)數(shù)據(jù)。Connectionstring
sinADO.NET

實(shí)現(xiàn)

jdbc的連接字符串如下

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供新和網(wǎng)站建設(shè)、新和做網(wǎng)站、新和網(wǎng)站設(shè)計(jì)、新和網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、新和企業(yè)網(wǎng)站模板建站服務(wù),10多年新和做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
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);

問題及解決

客戶的密碼中包含分號(hào),于是這個(gè)連接串就有問題了。
因?yàn)檫B接字符串本身就是一個(gè)分號(hào)分割的kv組。

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

解決方案官方說了,用單引號(hào)或者雙引號(hào)包起來

it must be enclosed in single or double quotation marks.

我們改為用單引號(hào)包起來

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

問題解決了
我們馬上想到,那么密碼中有單引號(hào)怎么辦?
官方也說了

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-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://muchs.cn/article18/dsppgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、品牌網(wǎng)站設(shè)計(jì)定制開發(fā)、定制網(wǎng)站品牌網(wǎng)站制作、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營