2013-09-23 10 views
2

Мое соединение не работает со следующим сообщением: «Точка входа процедуры ons_subscriber_cancelcallback не может быть расположена в динамической библиотеке ссылок oraons.dll».C# - Подключение к Oracle

Может ли кто-нибудь помочь?

код довольно прямо вперед:

string oradb = ""; 
    oradb = "Data Source=MYORADB;Password=MYPASS123;User ID=MYUSERID;"; 
    OracleConnection conn = new OracleConnection(oradb); 
    conn.Open(); 

Я уже подсоединена ЖАБА с этими учетными данными.

+0

Было бы намного проще помочь, если бы вы разместили весь код соединения, который вы используете. Используете ли вы драйверы Oracle по адресу http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html? Также ознакомьтесь с этой статьей: http://www.oracle.com/technetwork/articles/dotnet/vs2010-oracle-dev-410461.html –

+0

Я добавил фрагмент кода. Это довольно простой подход. и да, я пытаюсь использовать Oracle.DataAccess.Client –

ответ

0

У вас, похоже, нет IP-адреса или номера базы данных. Если у вас есть те, которые доступны, попробуйте использовать формат Oracle EZCONNECT:

//Check that MYORADB is your actual SID number 
string oradb = getConnectionString("10.1.2.3", 1521, "MYORADB", "MYUSERID", "MYPASS123"); 
OracleConnection conn = new OracleConnection(oradb); 
conn.Open(); 

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

все еще не повезло - это имеет какое-либо отношение к версии совместимости клиента Oracle с сервером Oracle? Я использую Oracle Client версии 11g, но мой сервер 10g. –

+0

Не уверен, что отличием в версии является преступник, но еще одна идея. Сначала создайте папку C: \ OracleClient, поместите в нее oraons.dll и добавьте C: \ OracleClient в переменную Windows PATH (используйте Google, если вы не знаете, как это сделать). Если это не сработает, я буду использовать Google «ons_subscriber_cancelcallback», пока вы не найдете что-то, что работает. Я чувствую вашу боль - мне потребовались дни, чтобы заставить Oracle работать с моим приложением C#. Будьте настойчивы, и вы получите его работу! –

+0

Я справился с этим. На самом деле, у меня было несколько версий Oracle Client, установленных на моей машине для 11g и 12c. Удалили оба из них, перезагрузили машину. Просто установлен Oracle Client для 12c, и ошибка исчезла. Спасибо за помощь. –

0

Для меня, решение было перейти на сайт Oracle, где я скачал и установил последнюю версию компонентов доступа Oracle Data (ODAC) ,

Вы должны быть осторожны, чтобы установить правильную версию для вашей среды программирования. В моем случае это была версия 12c (64-разрядная версия).

Отредактировано Oracle.DataAccess.dll ссылка на версию, которую я только что установил.

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