连接到Oracle数据库

我正在尝试连接到Oracle数据库,但是当代码执行该行时:

con = new OracleConnection(oradb); 

它给出了这个错误。 “程序无法启动,因为您的计算机缺少oraons.dll。请尝试重新安装该程序以解决此问题。” 我已经从以下站点http://www.oracle.com/technetwork/topics/dotnet/index-085163.html在我的计算机上安装了ODP for .net并引用了Oracle.DataAccess。

我还检查了安装的文件夹,我可以在文件夹中看到oraons dll。 这是代码:

 class OracleDatabase { OracleConnection con; public void ConnectToOracleDb() { string oradb = getConnectionString("host", 1521, "sid", "user", "pass"); try { con = new OracleConnection(oradb); con.Open(); Console.WriteLine("Connected to Oracle" + con.ServerVersion); } catch { Console.WriteLine("Could not connect to FLX"); } } 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 ); } } 

为什么我不能连接任何建议?

PATH设置不是必需的。 我用oraons.dll的副本解决了同样的问题,进入了ORACLE_HOME\bin文件夹,之后安装正常。

通过安装程序进行Oracle设置与xcopy depoyment之间存在差异。 我现在不知道为什么。 两个安装都具有相同的注册表设置:

 HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\ODP.NET\4.112.4.0\DllPath 

并且DllPath指向ORACLE_HOMEBIN文件夹。 这意味着对ORACLE_HOMEBIN文件夹的PATH设置没有帮助。 对客户端的ORACLE_HOME的附加PATH将有所帮助。 我认为没有必要。 只有oraons.dll复制到BIN就足够了。

我最终引用了ManagedDataAccess.Client而不仅仅是Data.Access.Client,它起作用了。

我在测试项目中遇到了这个错误。 问题是我从具有旧PATH的命令行打开Visual Studio。 打开所有新鲜的东西后,它起作用。

从代码中检查PATH,并确保oracle文件夹在PATH中。