tnsnames.ora里面的内容如下:
ORACLE_192.168.1.125 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.125)(PORT = 1521))
)
(CONNECT_DATA =
(SID = oracle)
(SERVER = DEDICATED)
)
)
这是客户端访问服务器时自动生成的,程序里的连接字符串是<add name="oracle_conn" connectionString="Data Source=ORACLE;User ID=qqhe;Password=qqhe;" providerName="Oracle.DataAccess.Client"/>调试时vs2010提示ORA-12154: TNS: 无法解析指定的连接标识符,让我感到疑惑的一点是连接串里好像没有指定使用服务器上的哪个数据库,请问是不是连接字符串写错了,如果错了应该怎么写?另外,Oracle.DataAccess.Client.OracleConnection与OracleConnection(非System.Data.OracleClient.OracleConnection)以及ODP.NET到底有什么区别或者联系?在下初学Oracle.DataAccess.Client连接方式,请前辈们指教。
ORACLE_192.168.1.125 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.125)(PORT = 1521))
)
(CONNECT_DATA =
(SID = oracle)
(SERVER = DEDICATED)
)
)
这是客户端访问服务器时自动生成的,程序里的连接字符串是<add name="oracle_conn" connectionString="Data Source=ORACLE;User ID=qqhe;Password=qqhe;" providerName="Oracle.DataAccess.Client"/>调试时vs2010提示ORA-12154: TNS: 无法解析指定的连接标识符,让我感到疑惑的一点是连接串里好像没有指定使用服务器上的哪个数据库,请问是不是连接字符串写错了,如果错了应该怎么写?另外,Oracle.DataAccess.Client.OracleConnection与OracleConnection(非System.Data.OracleClient.OracleConnection)以及ODP.NET到底有什么区别或者联系?在下初学Oracle.DataAccess.Client连接方式,请前辈们指教。
您再检查你的一个监听的文件,好像跟你上面的文件在同一个目录。这两个文件弄明白了,你可以随意的手动的加删Orcale的连接。不用手动在Oracle的工具里去一步一步配置了。
改成ORACLE_192.168.1.125
"Data Source=数据库名;Persist Security Info=True;User ID=用户名Password=密码;Unicode=True"
之后问题仍然存在……
其实这个不依赖于tnsnames.ora的连接串内容跟tnsnames.ora里的一个条目(item)规范是一样的。oracle实现的ado.net库支持这种格式串的解析,这样做的好处是你的程序不用依赖于tnsnames.ora的解析。
原因就是这样子。我鼓励使用这种格式的连接串。
就这样一直延续到现在。用户自己完全可以构造自己的xml配置文件,将其生成tnsnames.ora格式。熟练了,就不会出错了。