【问题标题】:How to load data from oracle database using .dsn? (VB.NET)如何使用 .dsn 从 oracle 数据库加载数据? (VB.NET)
【发布时间】:2014-02-12 00:27:09
【问题描述】:

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

你能告诉我我的代码有什么问题吗?有没有其他方法可以使用 VB.net 通过 .dsn 连接到 oracle 数据库?我目前正在使用** Oracle 11g**。

【问题讨论】:

  • 我从未见过将 dsn 引用为文件。它通常使用 ODBC 管理面板进行配置
  • 您可以在文件中进行操作,没有任何问题。可能有用的是存储在网络共享或类似的公共位置。

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


【解决方案1】:

您的代码中最大的问题是您使用 ODBC 连接到 Oracle。您应该使用微软甚至推荐的 ODP.NET。您所做的[最有可能]是为了向后兼容而不是编写新东西。

你的问题出在连接字符串上,应该是这样的

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    相关资源
    最近更新 更多