使用OracleConnection尝试使用C#连接到oracle express 10时出错
我正在用.Net(3.5)C#和Oracle Express 10g开发一个应用程序。当我尝试连接到数据库时,出现以下错误: 从我获得的OracleConnection对象,在ServerVersion属性中:使用OracleConnection尝试使用C#连接到oracle express 10时出错,c#,.net,database,oracle,C#,.net,Database,Oracle,我正在用.Net(3.5)C#和Oracle Express 10g开发一个应用程序。当我尝试连接到数据库时,出现以下错误: 从我获得的OracleConnection对象,在ServerVersion属性中: ServerVersion='conn.ServerVersion'produjo una excepción de tipo'System.invalidooperationexception' 而且,在捕获中: ORA-12154:TNS:无法解析指定的连接标识符 我正在使用此连接字
ServerVersion='conn.ServerVersion'produjo una excepción de tipo'System.invalidooperationexception'
而且,在捕获中:
ORA-12154:TNS:无法解析指定的连接标识符
我正在使用此连接字符串:
数据源=Angelo HP/XE;用户ID=MAPFRE;密码=123456代码>
我的tnsnames.ora已设置为:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Angelo-HP)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
我的sqlnet.ora如下所示:
SQLNET.AUTHENTICATION\u SERVICES=(NTS)
name.DIRECTORY\u PATH=(LDAP、tnsname、主机名)
知道我为什么不能连接吗
谢谢。您的连接字符串被称为
Data Source=Angelo-HP/XE;User ID=MAPFRE;Password=123456;
这意味着它正在寻找Angelo HP/XE的TNSNAME,它不在TNS名称中,因此您会收到错误消息
换成
Data Source=XE;User ID=MAPFRE;Password=123456;
您应该将Datasource属性更改为XE,如我在评论中所述
Data Source=XE;User ID=MAPFRE;Password=123456;
此外,您还必须确保tnsnames中的标识符前面没有空格
另一件事:如果安装了多个oracle客户端,则必须确保此条目位于正确的tnsname中。尝试在connectionstring中将数据源设置为XE。你能把错误信息翻译成英语吗?对我们来说更容易理解;-)'conn.ServerVersion“发生类型的异常”System.InvalidOperationException“TNS:无法解析指定的连接标识符您可以tnsping
该标识符吗?您所说的tnsing是什么意思?和Im使用System.Data.OracleClient;是的,现在我的连接字符串是:datasource=XE;用户ID=MAPFRE;密码=123456;我只有一个oracle客户端,即oracle express 10g。这是我第一次安装oracle.open命令提示符,输入tnsping-XE
。上面说什么@AngeloI已将我的sqlnet.ora更改为:automatic_ipc=OFF#对于PC的跟踪设置为OFF _level_client=OFF#如果需要跟踪,则设置为16 sqlnet.expire_time=0#以分钟为单位的空闲时间sqlnet.authentication#services=(全部)names.directory_lookup=(TNSNAMES、ONAMES、HOSTNAME)现在我在XE获得了成功,但仍然无法从.Net连接