我正在尝试连接到 Oracle 数据库,但是当代码执行该行时:
con = new OracleConnection(oradb);
它给出了此错误。"程序无法启动,因为您的计算机中缺少oraons.dll。尝试重新安装该程序以解决此问题。我已经从以下站点 http://www.oracle.com/technetwork/topics/dotnet/index-085163.html 在我的计算机上安装了 .net 的 ODP,并引用了 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
复制到 dhe ORACLE_HOMEbin
文件夹中解决了同样的问题,然后安装就可以了。
通过安装程序进行 Oracle 设置和 xcopy 标记之间存在差异。我现在不知道为什么。两个安装具有相同的注册表设置:
HKEY_LOCAL_MACHINESOFTWAREOracleODP.NET4.112.4.0DllPath
并且DllPath
指向ORACLE_HOME
的BIN
文件夹。这意味着ORACLE_HOME
的BIN
文件夹的 PATH 设置无济于事。对客户ORACLE_HOME
的额外PATH
会有所帮助。我认为这是没有必要的。只需将oraons.dll
复制到BIN
中就足够了。
我最终引用了ManagedDataAccess.Client,而不仅仅是Data.Access.Client,它起作用了。
我在测试项目中遇到了这个错误。问题是我从一个具有旧PATH的命令行打开Visual Studio。打开所有新鲜的东西后,它起作用了。
检查代码中的路径,并确保 oracle 文件夹位于 PATH 中。