2014-02-18 6 views
7

Я пытаюсь подключиться к базе данных Oracle, но когда код выполняет следующую строку:Подключение к базе данных Oracle

con = new OracleConnection(oradb); 

Это дает эту ошибку. «Программа не может запускаться, поскольку на вашем компьютере отсутствует файл oraons.dll. Попробуйте переустановить программу, чтобы исправить эту проблему». Я установил ODP для .net на свой компьютер уже со следующего сайта http://www.oracle.com/technetwork/topics/dotnet/index-085163.html и ссылался на Oracle.DataAccess.

Я также проверил папку, которая была установлена, и я вижу dll oraons в папке. Вот код:

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

Почему я не могу подключить какие-либо предложения?

+1

Если вы использовали Oracle xcopy (кажется таким образом) для установки драйверов ODP.NET, проверьте, добавлен ли каталог драйверов в систему Windows PATH. В случае Oracle xcopy вы должны сделать это вручную. –

+0

Просто проверено, что уже добавлено @NicholasKrasnov – kknaguib

+0

вы установили программное обеспечение клиента oracle? – steve

ответ

3

В итоге я обратился к ManagedDataAccess.Client, а не только к Data.Access.Client, и он сработал.

+0

Проблема была ПУТЬ. Выбор управляемого доступа к данным был обманом :) –

2

Я получал эту ошибку в своем тестовом проекте. Проблема заключалась в том, что я открывал Visual Studio из командной строки, у которой был старый PATH. После открытия все свежее, это сработало.

Проверьте PATH из вашего кода и убедитесь, что папка oracle находится в PATH.

+1

Спасибо. Сегодня в этой проблеме. Начиналось из окна меню вместо slick run, и это исправляло проблему – quimbo

+1

Фактически я установил драйвер, пока VS работал. Повторное открытие VS помогло, THX! – Bronek

4

Настройка PATH не требуется. Я решил эту же проблему с копией oraons.dll в папку dhe ORACLE_HOME\bin, после чего эта установка работает.

Существует различие между установкой Oracle через установщик и операцией xcopy. Я не понимаю, почему. Обе установки имели один и тот же параметр реестра:

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

и DllPath указывает на BIN папку ORACLE_HOME. Это означает, что установка PATH в папку BINORACLE_HOME не помогает. Дополнительный PATH для клиента ORACLE_HOME. Я думаю, что это не обязательно. Достаточно только копии oraons.dll в BIN.

Смежные вопросы