将变量传递给连接字符串VB.NET [英] Pass variable to connectivity string VB.NET
问题描述
嗨大家好,
我试图在ODBC连接字符串中传递变量以连接到多个SYBASE数据库。如果我在连接字符串中手动定义服务器详细信息,此代码可以正常工作。
i我不知道我在这里做了什么语法错误。
请帮助识别此错误代码。
需要你的提示帮助。
谢谢
Mayur
代码:
SRVR =SERVERNAME
PRT = 0000
fasdb =dbname
Dim myConn As Odbc.OdbcConnection = New Odbc.OdbcConnection( Driver = Adaptive Server Enterprise; uid = prv5210787; server =& SRVR& port =& PRT& ;; database =& fasdb& pwd = XXX)
尝试
myConn.Open()
Dim spwho As Odbc.OdbcCommand = New Odbc.OdbcCommand( {CALL search_n_reset(?)(?)},myConn)
spwho.CommandType = CommandType.StoredProcedur e
Dim myParm As Odbc.OdbcParameter = spwho.Parameters.Add( '@ loginid ',Odbc.OdbcType.VarChar)
Dim myParm1 As Odbc.OdbcParameter = spwho.Parameters.Add( '@ passwd',Odbc.OdbcType.VarChar)
myParm.Value = XXX
myParm1.Value = XXX
Dim myInt As UInteger = spwho.ExecuteNonQuery()
lblMessage.Text = 密码已重置成功。
' Console.WriteLine(执行存储过程)
' MessageBox.Show( 已执行st ored proc, 信息)
Catch ex As Exception
lblMessage.Text = 指定的用户无效,密码保持不变。
' MessageBox.Show(指定的用户无效,密码保持不变。,错误)
抛出
结束尝试
myConn.Close()
我尝试了什么:
使用数据库服务器信息手动更新代码工作正常。
需要帮助查看语法错误代码
你错过了一些引号。你有...
Driver = Adaptive Server Enterprise; uid = prv5210787; server =&SRVR&; port =&PRT&; database =&fasdb&; pwd = XXX
尝试..
Driver = Adaptive Server Enterprise; uid = prv5210787; server =&SRVR&; port =&PRT&; database =&fasdb; pwd =&XXX
或者看看String.Format它可以让事情变得更多可读,你不会遇到这么多问题。
Template =Driver = Adaptive Server Enterprise; uid = prv5210787; server = {0}; port = { 1}; database = {2}; pwd = {3}
ConnectionString = String.Format(模板,SRVR,PRT,FASDB,PWD)
感谢您帮助烟花!
解决方案#1完美无缺:)
Hi Guys,
I am trying to pass variables in the ODBC connection string for connecting to multiple SYBASE databases. this code works fine if I manually define the server details in the connectivity string.
i am not sure what syntax error i am making here.
Please help identify the error in this code.
Your prompt assistance is needed.
Thanks
Mayur
Code:
SRVR = "SERVERNAME"
PRT = 0000
fasdb = "dbname"
Dim myConn As Odbc.OdbcConnection = New Odbc.OdbcConnection("Driver=Adaptive Server Enterprise;uid=prv5210787;server=& SRVR &port= & PRT & ;database= & fasdb &pwd=XXX")
Try
myConn.Open()
Dim spwho As Odbc.OdbcCommand = New Odbc.OdbcCommand("{ CALL search_n_reset (?) (?) }", myConn)
spwho.CommandType = CommandType.StoredProcedure
Dim myParm As Odbc.OdbcParameter = spwho.Parameters.Add("'@loginid'", Odbc.OdbcType.VarChar)
Dim myParm1 As Odbc.OdbcParameter = spwho.Parameters.Add("'@passwd'", Odbc.OdbcType.VarChar)
myParm.Value = "XXX"
myParm1.Value = "XXX"
Dim myInt As UInteger = spwho.ExecuteNonQuery()
lblMessage.Text = "Password has been reset successfully."
' Console.WriteLine("Executed stored proc")
' MessageBox.Show("Executed stored proc", "Information")
Catch ex As Exception
lblMessage.Text = "Invalid user specified, password left unchanged."
'MessageBox.Show("Invalid user specified, password left unchanged.", "Error")
Throw ex
End Try
myConn.Close()
What I have tried:
Manually updating the code with DB server information works fine.
Need help to review the code for syntax error
You're missing some quotation marks. You have...
"Driver=Adaptive Server Enterprise;uid=prv5210787;server=& SRVR &;port= & PRT & ;database= & fasdb &;pwd=XXX"
Try..
"Driver=Adaptive Server Enterprise;uid=prv5210787;server=" & SRVR &" ;port=" & PRT & ";database=" & fasdb ";pwd=" & XXX
Alternatively have a look at String.Format it can make things much more readable and you don't get half so many problems.
Template = "Driver=Adaptive Server Enterprise;uid=prv5210787;server={0} ;port={1} ;database= {2};pwd={3}"
ConnectionString = String.Format(Template, SRVR, PRT, FASDB, PWD)
Thanks for the help "cigwork"!
solution #1 works perfectly fine :)
这篇关于将变量传递给连接字符串VB.NET的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!