我们在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