string connection = "user id= readhscrm;Password= readhscrm;Data Source= viptest";
          
            oconn = new OracleConnection(connection);
            oconn.Open();//在这里就开始出问题了
            OracleCommand cmd = new OracleCommand();
            cmd.CommandText = "select * from isucardpayall where cardfaceno = '880010197405' and xsdate = (select max(xsdate) from isucardpayall where cardfaceno = '880010197405') order by xsdate desc";
            OracleDataReader odr = cmd.ExecuteReader();
            while (odr.Read())
            {
                string infos = odr.GetOracleString(1).ToString();
            }
错误提示信息:ORA-12154: TNS: 无法解析指定的连接标识符 
我系统是xp的大家出过这样的问题吗  搞了一天啦

解决方案 »

  1.   

    顺便说一下我是在WebService里调用的
      

  2.   

    ServerVersion = “oconn.ServerVersion”引发了“System.InvalidOperationException”类型的异常
    这个错误见过吗
      

  3.   

    单独用Net Manager测试一下viptest这个实例是否能够连接成功,并用PLSQL测试下readhscrm这个用户是否能够正常登陆,用来判断是否是oracle方面的问题
      

  4.   

    PLSQL测试下readhscrm测试可以连接成功能查出数据
    在vs添加连接里也连接不上报同样的错误
      

  5.   

    连接oracle时报错,信息如下"ORA-12154: TNS: 无法解析指定的连接标识符", 到google上到处搜,看到一些英文的网站的答案是修改tnsname.ora就可以修复连接。检查了一下也没发现这个文件的问题。    估计是安装ODT for VS.Net之后,OracleHome和OracleSID有重复或者无效, 到注册表中一看,果然是有问题,发现HKey_LocalMachine\Software\Oracle下面的Oracle_Home路径被改成了E: \program files, 我的oracle是装在E:\oracle目录的,于是把这个改了,再试,系统也重起了,依然无效,后来想干脆把ODT 给删了,于是到控制面板找Oracle Developer Tools, 怎么都找不到,到是找到了ODP for .Net,把这个给卸载了,以前装的Oracle Developer Tools目录(E:\Oracle\product\10.1.0\Client_1)依然没有被删除,于是手动删除这个目录,提示OCI.dll正在使用,无法删除,再尝试把这个目录给重命名了,居然命名成功。于是重启系统,再运行Asp.Net的客户端,成功连接Oracle数据库。    总结一下,装了解决Oracle Developer Tools之后,出现“ORA-12154: TNS: 无法解析指定的连接标识符”报错的解决方法如下:    1.检查注册表,HKey_LocalMachine\Software\Oracle下面的Oracle_Home,若不对,修改成正确的;    2.卸载ODP for .Net (或者卸载ODT for .Net, ODT中包含ODP, ODT 是VS.Net的一个集成插件,用于连接和浏览oracle数据库,并且提供对oracle数据库的拖拽操作,类似VS.Net对于SQL Server的资源管理器);    3.如果ODT for .Net的目录依然存在,删除或者重命名此目录;    然后重起系统,重新连接ASP.Net程序,如果还有同样的错误,看着办吧,我建议重装Oracle吧。    分析原因:系统原来装的是ORACLE 10G 10.1.0,卸载后还没重启就装上10.2.0,结果先是监听器起不来,竟然还是指向10.1.0的位置,监听器当然不能启动了。    处理过程:
        1、查找注册表,将监听器指向新的位置,重启服务,OK;
        2、PL/SQL DEVELOPER还是连接不了,其它方式都正常。将原先安装在其它逻辑盘的ODP for .Net 卸载重装到与ORACLE 10.2.0同一位置。重启系统,DEVELOPER还是报错,不过些时报错提示信息为空。
        3、因为DEVELOPER设置有更改后,进入菜单TOOLS》PREFERENCES...设置,在ORACLE下的CONNECTION中,将 ORACLE HOME和OCI LIBIARY设为空即自动检测。连接正常,问题解决。    二、应用程序中报错:    一个很难想到的引起ORA-12154的原因
            使用OracleClient.OracleConnection时(我连的是Oracle 9i,其他版本未知),如果你的执行目录太长或者有括号等(未考察有些什么符号),那么即使你的服务名是对的,也会引起ORA-12154问题“TNS: 无法处理服务名”,当出现这个问题时,请也考虑这个原因。
      

  6.   

    数据库配置方面的原因
    http://www.google.com.hk/search?hl=zh-CN&q=TNS%3A%20%E6%97%A0%E6%B3%95%E8%A7%A3%E6%9E%90%E6%8C%87%E5%AE%9A%E7%9A%84%E8%BF%9E%E6%8E%A5%E6%A0%87%E8%AF%86%E7%AC%A6%20
      

  7.   

    你放那个系统的机器上有MYORACLE这个连接标识么,用那个机器上的oracle client的net manager先测试一下连通性
      

  8.   

    服务端和客户端的oracle版本啥情况,客户端版本不能低于服务端的,否则测试连接虽然能通过,但是传输数据会有问题
      

  9.   

    我的安装文件里没有这个文件Oracle\product\10.1.0\Client_1
      

  10.   

    oracle client的net manager先测试一下连通性
    在我的机器上测试吗?  我在vs2005上连不通但是pl可以