我正在尝试使用.dsn测试从我的实用程序到oracle DB的连接是否正常工作。我从很多论坛上搜索过但无济于事。这是我的代码:
Dim filedsn As String = "C:\my_dsn.dsn"
Dim uid As String = "id123"
Dim pwd As String = "1234"
Dim cn As OdbcConnection
cn = New OdbcConnection("Driver=Oracle in OraClient11g_home2;Provider=msdaora;dsn=" & filedsn & ";uid=" & uid & ";pwd=" & pwd & ";")
Dim mystring As String = "Select * from DD_CADS1.PDTABLE_12_1001"
Dim cmd As OdbcCommand = New OdbcCommand(mystring)
cn.Open()
MsgBox("Connected")
cn.Close()
但是出现了这些错误..
ERROR [HY000] [Oracle][ODBC][Ora]ORA-12560: TNS:protocol adapter error
ERROR [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed
ERROR [HY000] [Oracle][ODBC][Ora]ORA-12560: TNS:protocol adapter error
你能告诉我我的代码有什么问题吗?有没有其他方法通过.dsn使用VB.net连接到oracle数据库?我目前正在使用** Oracle 11g **。
答案 0 :(得分:1)
代码中最大的问题是您使用ODBC连接到Oracle。您应该使用ODP.NET,这甚至是Microsoft推荐的。你做的是[最有可能]为了向后兼容而不是写新东西。
这里你的问题出在连接字符串中,它应该是这样的
"DSN=oracledsn;UID=myUID;PWD=myPWD;Integrated Security=no;"
您只需要command
来测试连接
using cn= New OdbcConnection(".....")
cn.Open()
if cn.State = ConnState.Open Then MessageBox.Show(...)
end using
当您使用using
时,它将负责关闭和处理连接。