如何在VB.Net代码中处理带有分号和单引号的MSSQL密码



我们在vb.net中编写代码。我的MS SQL密码包含分号、双引号和单引号(ilo;veac'h”alle;nge(。

Dim ConnectionString As String = "Server=DT2719MOD; Database=abs2; User Id=TestUserLogon; Password= ilo;veac'h”alle;nge"

有人能建议/提供一些线索来解决这个问题吗?

在VB和连接字符串中,用另一个双引号转义一个双括号,并且可以用双引号包装连接字符串字段值。这意味着,要从字面上写连接字符串,你可以这样做:

Dim ConnectionString As String = "Server=DT2719MOD;Database=abs2;User Id=TestUserLogon;Password=""ilo;veac'h""""alle;nge"""

密码在连接字符串中用双引号括起来,这样分号就可以按字面意思解释,并且需要在VB中对它们进行转义。密码中的双引号需要在连接字符串内进行转义,然后在VB中也需要对这两者进行转义。

请注意,正如注释中所建议的,连接字符串生成器将为您完成此操作,例如

Dim builder As New SqlConnectionStringBuilder With {
.DataSource = "DT2719MOD",
.InitialCatalog = "abs2",
.UserID = "TestUserLogon",
.Password = "ilo;veac'h""alle;nge"}
Dim connection As New SqlConnection(builder.ConnectionString)

在这种情况下,您只需要为VB.转义一次密码中的双引号

对于记录,您也可以使用服务器资源管理器为您生成连接字符串。

您可以尝试

Dim quote as String = Chr$(34)
Dim semi as String = Chr$(59)
Dim password as String "ilo" & semi & "veac'h" & quote & "alle" & semi & "nge"    
Dim ConnectionString As String = String.Format("Server=DT2719MOD; Database=abs2; User Id=TestUserLogon; Password= {0}", password)

Chr((函数位于https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/chr-function

最新更新