2014-02-18 15 views
7

Ich versuche, zu einer Oracle-Datenbank zu verbinden, aber wenn das der Code die Zeile ausführt:Verbindung mit einer Oracle-Datenbank

con = new OracleConnection(oradb); 

Es gibt diesen Fehler. "Das Programm kann nicht gestartet werden, da oraons.dll auf dem Computer fehlt. Versuchen Sie, das Programm neu zu installieren, um das Problem zu beheben." Ich installierte das ODP für .net auf meinem Computer bereits von der folgenden Site http://www.oracle.com/technetwork/topics/dotnet/index-085163.html und referenzierte den Oracle.DataAccess.

Ich überprüfte auch den Ordner, der installiert wurde, und ich kann die oraons DLL in dem Ordner sehen. Hier ist der Code:

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 
     ); 
    } 
} 

Warum kann ich keine Vorschläge anschließen?

+1

Wenn Sie Oracle xcopy (scheint so) verwendet, um die ODP.NET-Treiber zu installieren, überprüfen Sie, ob das Treiberverzeichnis zum Windows-System PATH hinzugefügt wurde. Im Fall von Oracle xcopy müssen Sie dies manuell tun. –

+0

Nur überprüft, es wurde bereits hinzugefügt @ NicholasKrasnov – kknaguib

+0

haben Sie die Oracle-Client-Software installiert? – steve

Antwort

3

Ich endete die Verweise auf die ManagedDataAccess.Client anstelle nur der Data.Access.Client und es funktionierte.

+0

Das Problem war der PATH. Auswahl Managed Data Access war Betrug :) –

2

Ich bekam diesen Fehler in meinem Testprojekt. Das Problem war, dass ich Visual Studio über eine Befehlszeile öffnete, die einen alten PATH hatte. Nach dem Öffnen alles frisch, es hat funktioniert.

Überprüfen Sie den Pfad aus Ihrem Code, und stellen Sie sicher, dass der Oracle-Ordner im Pfad ist.

+1

Vielen Dank. Ist heute auf dieses Problem gestoßen. Begonnen von der Windows-Menü statt Slick Run und dies behoben das Problem – quimbo

+1

Eigentlich habe ich den Treiber installiert, während VS lief. Wiedereröffnung von VS half, thx! – Bronek

4

Die PATH-Einstellung ist nicht erforderlich. Ich löste das gleiche Problem mit einer Kopie der oraons.dll in der ORACLE_HOME\bin Ordner und danach funktioniert die Installation.

Es gibt einen Unterschied zwischen einem Oracle-Setup über Installer und der XCopy-Entfernung. Ich weiß jetzt nicht warum. Beiden Anlagen hatten die gleiche Registrierungseinstellung:

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

und die DllPath zeigt auf die BIN Ordner der ORACLE_HOME. Das bedeutet, dass eine PATH-Einstellung für den Ordner der ORACLE_HOME nicht hilft. Eine zusätzliche PATH an die ORACLE_HOME des Kunden würde helfen. Ich denke, das ist nicht notwendig. Nur eine Kopie der oraons.dll in die BIN ist genug.

Verwandte Themen