2013-12-03 3 views
9

Я этот код:это ошибка 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" Правильно

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

ORA-12154: TNS: не удалось найти подходящий идентификатор соединения

Я использую C# .net 2010, office 2007, windows8, oracle 10g.

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

Visual Studio, откройте меню View + Server Explorer.

Щелкните правой кнопкой мыши по соединению данных + добавьте соединение + выберите базу данных Oracle имя сервера: localhost или имя моей машины, укажите имя пользователя & пароль и нажмите «Проверить соединение», тест не преуспеет. enter image description here

+1

Вам не нужно указывать имя базы данных s в другом месте? – Habib

+0

Да, я не могу указать базу данных где-то –

+0

Тот же код работает правильно в Project1 «winForms» и на том же компьютере, но он не работает в другом проекте «Excel 2007 addins» –

ответ

23

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 бит, то вы устанавливаете oracle 11g 32 bit, и если вы устанавливаете 11g 64 бит, тогда вы устанавливаете Oracle 11g Oracle Data Access Components (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 

и перезапустить против затем запустить свой проект .... Примечание: - SYSTEM RESTART необходима для РЕШИТЬ ЭТОТ ТИПЫ ОШИБКИ .......

+1

thank u .. напрямую используя описание в строке соединения решает эту проблему ... – Karthick

+0

Вам нужно перезагрузить что? клиента или сервера? Обычно вы можете решить проблемы «перезагрузки», только перезапустив некоторые конкретные службы. –

6

База данных должна иметь название (пример 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"); 
+0

У меня нет DB1, я использовал ошибку 2 «ORA-06413: соединение не открыто» –

+0

C: \ oraclexe \ app \ oracle \ product \ 10.2.0 \ server \ NETWORK \ ADMIN \ tnsnames.ora , XE = (DESCRIPTION = (ADDRESS = (ПРОТОКОЛ = TCP) (HOST = Pcmax) (PORT = 1521)) (CONNECT_DATA = (SERVER = Посвящается) (SERVICE_NAME = XE) ) ) –

+0

Я надеюсь, что вы поможет мне @Wernfried –

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

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