C# - Oracle连接

时间:2013-09-23 19:55:30

标签: oracle connection

我的连接失败,显示以下消息:“无法在动态链接库oraons.dll中找到过程入口点ons_subscriber_cancelcallback”。

有人可以帮忙吗?

代码很简单:

  string oradb = "";
  oradb = "Data Source=MYORADB;Password=MYPASS123;User ID=MYUSERID;";
  OracleConnection conn = new OracleConnection(oradb);
  conn.Open(); 

我已使用这些凭据连接TOAD。

2 个答案:

答案 0 :(得分:1)

对我来说,解决方案是访问我下载并安装最新版 Oracle数据访问组件(ODAC)的Oracle网站。

您需要小心为您的编程环境安装正确的版本。就我而言,它是版本12c(64位)。

从那里,我将 Oracle.DataAccess.dll 引用重定向到我刚刚安装的版本。

答案 1 :(得分:0)

您似乎没有数据库IP或端口号。一旦有了这些,请尝试使用Oracle EZCONNECT格式:

//Check that MYORADB is your actual SID number
string oradb = getConnectionString("10.1.2.3", 1521, "MYORADB", "MYUSERID", "MYPASS123");
OracleConnection conn = new OracleConnection(oradb);
conn.Open(); 

private static string getConnectionString(string databaseIP, int databasePort, string databaseSID, string databaseUN, string databasePW)
{
    return string.Format(
        "Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = {0})(PORT = {1}))(CONNECT_DATA =(SID = {2})));" +
        "Persist Security Info=True;User ID={3};Password={4}",
        databaseIP, databasePort, databaseSID, databaseUN, databasePW
    );
}