kkn*_*uib 9 c# database database-connection oracle11g
我正在尝试连接到Oracle数据库,但是当代码执行该行时:
con = new OracleConnection(oradb);
Run Code Online (Sandbox Code Playgroud)
它给出了这个错误."程序无法启动,因为您的计算机缺少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
);
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我不能连接任何建议?
小智 6
PATH设置不是必需的.我用oraons.dll
into dhe ORACLE_HOME\bin
文件夹的副本解决了同样的问题,然后安装工作.
通过安装程序进行Oracle设置与xcopy depoyment之间存在差异.我现在不知道为什么.两个安装都具有相同的注册表设置:
HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\ODP.NET\4.112.4.0\DllPath
Run Code Online (Sandbox Code Playgroud)
和DllPath
指向BIN
文件夹的点ORACLE_HOME
.这意味着对BIN
文件夹的PATH设置ORACLE_HOME
没有帮助.另外一个PATH
对ORACLE_HOME
客户端会有所帮助.我认为没有必要.只有一份oraons.dll
进入BIN
就足够了.