【问题标题】:Using dynamic connection strings to connect to sybase via vb.net使用动态连接字符串通过 vb.net 连接到 sybase
【发布时间】:2016-03-17 02:10:58
【问题描述】:
我需要您帮助获取使用参数分配服务器、端口和数据库名称的语法。
如果我在命令中显式传递变量,则脚本可以正常工作。
Dim myConn1 As Odbc.OdbcConnection = New Odbc.OdbcConnection("Driver=Adaptive Server Enterprise;uid=XXX;server=& SRVR &;port=& PRT &;database=& dbname &;pwd=XXX")
请告诉我我哪里出错了。请求您的及时帮助。
谢谢
马尤尔
【问题讨论】:
标签:
vb.net
string
odbc
sybase
【解决方案1】:
您实际上并没有连接任何字符串。这里面有多少个双引号:
"Driver=Adaptive Server Enterprise;uid=XXX;server=& SRVR &;port=& PRT &;database=& dbname &;pwd=XXX"
正好有两个,这意味着整个事情就是一个字符串。如果你想连接多个字符串,那么实际上必须有多个字符串:
"Driver=Adaptive Server Enterprise;uid=XXX;server=" & SRVR & ";port=" & PRT & ";database=" & dbname & ";pwd=XXX"
您可以通过首先不使用字符串连接来避免此类愚蠢的问题。您可以使用 String.Format 或在 VB 2015 中使用字符串插值来使事情更清晰,或者您可以在从部件构建连接字符串时执行您应该做的事情并使用连接字符串构建器。在构建 ODBC 连接字符串时,您将使用 OdbcConnectionStringBuilder 类:
Dim builder As New OdbcConnectionStringBuilder("Driver=Adaptive Server Enterprise;uid=XXX;pwd=XXX")
builder("server") = server
builder("port") = port
builder("database") = database
Using connection As New OdbcConnection(builder.ConnectionString)
'...
End Using