Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用OracleConnection尝试使用C#连接到oracle express 10时出错_C#_.net_Database_Oracle - Fatal编程技术网

使用OracleConnection尝试使用C#连接到oracle express 10时出错

使用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:无法解析指定的连接标识符 我正在使用此连接字

我正在用.Net(3.5)C#和Oracle Express 10g开发一个应用程序。当我尝试连接到数据库时,出现以下错误:

从我获得的OracleConnection对象,在ServerVersion属性中:

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连接