如何使用.dsn从oracle数据库加载数据? (VB.NET)

时间:2014-02-12 00:27:09

标签: vb.net oracle oracle11g database-connection connection-string

我正在尝试使用.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 **。

1 个答案:

答案 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时,它将负责关闭和处理连接。