0

我想通过使用.dsn测试从我的实用程序到oracle数据库的连接是否工作。我从很多论坛搜索,但无济于事。这里是我的代码:如何使用.dsn从oracle数据库加载数据? (VB.NET)

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

我从来没有见过dsn引用为文件。通常使用ODBC管理面板进行配置。 – OldProgrammer

+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很会照顾关闭和处理连接。

相关问题