Это ошибка ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения?

У меня есть этот код:

OracleConnection con = new OracleConnection("data source=localhost;user id=fastecit;password=fastecit"); 
con.Open(); string sql="Select userId from tblusers";    
OracleCommand cmd = new OracleCommand(sql, con);
OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{ messageBox.Show(dr[0].Tostring()); } 

Один и тот же код в обоих проектах,

в project1 "WinForm" работает правильно

в project2 "Excel 2007 надстройки" появляется следующая ошибка:

ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения

Я использую C#.net 2010, офис 2007, Windows8, Oracle 10g.

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

Visual Studio, откройте меню Вид + Обозреватель серверов.

Щелкните правой кнопкой мыши Data Connection + Add Connection + Выберите имя сервера базы данных Oracle: localhost или имя моего компьютера, задайте имя пользователя и пароль и нажмите Test Connection, проверка не удалась.

2 ответа

Решение

ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения?

Если TNS не определен, вы также можете попробовать это:

Если вы используете C#.net 2010 или другую версию VS и Oracle 10g Express Edition или более низкую версию, и вы создаете строку подключения, например:

static string constr = @"Data Source=(DESCRIPTION=
    (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=yourhostname )(PORT=1521)))
    (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE)));
    User Id=system ;Password=yourpasswrd"; 

После этого вы получите сообщение об ошибке ORA-12154: TNS:could not resolve the connect identifier specified затем сначала нужно перезагрузить систему и запустить проект.

И если у вас 64-битная версия Windows, вы устанавливаете 32-битную версию oracle 11g, а если 64-битную версию 11g, то вы устанавливаете Oracle 11g Компоненты доступа к данным Oracle (ODAC) с Oracle Developer Tools для Visual Studio версии 11.2.0.1.2 или новее из OTN. и проверьте его в Oracle Universal Installer. Убедитесь, что проверено следующее:

Oracle Data Provider for .NET 2.0

Oracle Providers for ASP.NET

Oracle Developer Tools for Visual Studio

Oracle Instant Client 

И перезапустите ваш vs, затем запустите ваш проект.... ПРИМЕЧАНИЕ:- ПЕРЕЗАГРУЗКА СИСТЕМЫ необходима для РЕШЕНИЯ ЭТИХ ТИПОВ ОШИБОК.......

База данных должна иметь имя (например, DB1), попробуйте это:

OracleConnection con = new OracleConnection("data source=DB1;user id=fastecit;password=fastecit"); 

Если TNS не определен, вы также можете попробовать это:

OracleConnection con = new OracleConnection("Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=DB1)));
User Id=fastecit;Password=fastecit"); 

Запустите приведенную ниже команду в командной строке

tnsping Datasource

Это должно дать ответ, как показано ниже

C:>tnsping *******

Утилита TNS Ping для *** Windows: Версия *** - Производство на *****

Авторское право (c) 1997, 2014, Oracle. Все права защищены.

Используемые файлы параметров: c:\oracle*****

Используется **** для разрешения псевдонима Попытка связаться (description = (address_list = (address = (protocol = tcp) (host =) (port =))) (connect_data = (server =) (service_name =) (failover_mode = (type =) (method =) (retries =) (delay =)))) ** OK (**** мс)

Добавьте текст "Datasource=" в начало и учетные данные в конце. последняя строка должна быть

Источник данных = (description = (address_list = (address = (protocol = tcp) (host =) (port =))) (connect_data = (server =) (service_name =) (failover_mode = (type =) (method =) (retries =) (delay=)))); Идентификатор пользователя =; Пароль =; **

Используйте это как строку подключения для подключения к Oracle db.

Другие вопросы по тегам