C#连接oracle数据库报“ORA-12154: TNS: 无法解析指定的连接标识符”错误看清楚内容再说哦!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#连接oracle数据库报“ORA-12154: TNS: 无法解析指定的连接标识符”错误看清楚内容再说哦!!相关的知识,希望对你有一定的参考价值。
连接成功代码: try
string constring = "data source= (DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = billow) ));user=sfcfa;password=sfcfa;";//ConfigurationManager.AppSettings["FAKey"]; //
OracleConnection conn = new OracleConnection(constring);
string orasql = "Select * from sfcmo"; //= "select * from sfcfa.sfcmo where seq in('" + this.textBox1.Text.ToString() + "') "; OracleDataAdapter ora1 = new OracleDataAdapter(orasql, conn);
DataSet orale = new DataSet();
ora1.Fill(orale, "123");
dataGridView1.DataSource = orale.Tables[0].DefaultView;
catch (Exception EX)
label1.Text = EX.ToString();
我需求写的代码
try
string constring = "data source=BILLOW;user=sfcfa;password=sfcfa;";//ConfigurationManager.AppSettings["FAKey"]; //
OracleConnection conn = new OracleConnection(constring);
string orasql = "Select * from sfcmo"; //= "select * from sfcfa.sfcmo where seq in('" + this.textBox1.Text.ToString() + "') "; OracleDataAdapter ora1 = new OracleDataAdapter(orasql, conn);
DataSet orale = new DataSet();
ora1.Fill(orale, "123");
dataGridView1.DataSource = orale.Tables[0].DefaultView;
catch (Exception EX)
label1.Text = EX.ToString();
报错如下图label1中别跟我说-->ORACLE监听器错误
plsql和SQLPlus都能连接上
本地数据库配置文件TNSNAMES:
# tnsnames.ora Network Configuration File: F:\app\Administrator\product\11.2.0\dbhome_5\NETWORK\ADMIN\tnsnames.ora# Generated by Oracle configuration tools.
ORACLR_CONNECTION_DATA = (DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
BILLOW = (DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = billow)
)
)
LISTENER_BILLOW = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
求大神解决我的需求!!!!所有家当就这点了 帮帮忙
修改为:
string constring = "Data Source=BILLOW;Persist Security Info=True;User ID=sfcfa;Password=sfcfa"
看看行不行?
我本机可以跑的配置是上面这样写的。
如果不行。
你可以尝试一下, 开始 --> 运行 cmd
D:\>tnsping BILLOW
然后观察一下, 会提示:
已使用的参数文件:
D:\oracle\......\sqlnet.ora
注意观察一下, 这个 D:\oracle\......\ 路径, 是不是你那里的那个 tnsnames.ora 所在的路径。
(假如机器上面安装了多个 不同版本的 Oracle 的时候, 会有这个问题) 参考技术A BILLOW =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = billow)
)
)
把localhost改成IP地址试试看追问
这个报错持续中。。
string constring = "Data Source=BILLOW;Persist Security Info=True;User ID=sfcfa;Password=sfcfa";
以管理员身份运行程序
目录不能有括号
oracle连接不了 报ORA-12154:TNS:无法解析指定的连接标识符
cmd里面可以正常连接
plsql里面这样
那两个配置文件
myeclipse里面
望大神或有经验者赐教!
打开client安装目录下network->admin下的tnsnames.ora文件
内容如下:
# tnsnames.ora Network Configuration File: F:/oracle/product/10.2.0/client_2/NETWORK/ADMIN/tnsnames.ora
# Generated by Oracle configuration tools.
abc =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.9)(PORT = 1521))
)
(CONNECT_DATA =
(SID = orcl)
(SERVER = DEDICATED)
)
)
127.0.0.1_LOCALLOST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Locallost)(PORT = 1521))
)
(CONNECT_DATA =
(SID = 127.0.0.1)
(SERVER = DEDICATED)
)
)
ORCL_LOCALHOST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SID = orcl)
(SERVER = DEDICATED)
)
)
把红色字体部分,拷贝到服务器端的安装目录下network->admin下的tnsnames.ora文件。如下所示:
# tnsnames.ora Network Configuration File: F:/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 74B5853F2D1648B)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
abc =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.9)(PORT = 1521))
)
(CONNECT_DATA =
(SID = orcl)
(SERVER = DEDICATED)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
修改后,发现可以连接数据库了。
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。
Oracle数据库最新版本为Oracle Database 12c。Oracle数据库12c 引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。此外,一些创新特性可最大限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c 成为私有云和公有云部署的理想平台。
参考技术B PLSQL Developer的安装目录不能有括号....试试这个,目测是这个的原因 参考技术C 和我的问题一样。首先到任务管理器---服务,把里面所有oracle的数据库和监听 给停掉。然后在
Net Configuration Assistant 里面把监听给删掉,然后在重建个监听。然后cmd里面 启动监听 lsnrctl start。在重新登录应该就没问题了。我就是这样解决的。 参考技术D 把你的配置文件的 host 改成 ip地址追问
哪个是我电脑名 可以用哪个的 改成ip是一样的
追答改成 127.0.0.1 后关闭 服务监听 重启试试
bendi =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
以上是关于C#连接oracle数据库报“ORA-12154: TNS: 无法解析指定的连接标识符”错误看清楚内容再说哦!!的主要内容,如果未能解决你的问题,请参考以下文章
oracle连接不了 报ORA-12154:TNS:无法解析指定的连接标识符
用C#链接Oracle Database总是出错(ORA-12154: TNS: 无法解析指定的连接标识符)