我创建了一个简单的Win Form应用程序。 但是我收到错误:ORA-12154:TNS:无法解析指定的连接标识符
我有一个甲骨文连接设置。 我通过服务器资源管理器连接到数据库来验证这一点。(连接到数据库)。
我知道我错过了一些微不足道的东西。
我正在使用从Nuget下载的Oracle托管驱动程序。
我怀疑它找不到我的 TNS 设置。 如何验证?
简单代码:
string connString = "Data Source=qqqqq;User Id=zzzzzz;Password=xxxxx;";
using (OracleConnection oConn = new OracleConnection(connString))
{
oConn.Open();
OracleCommand cmd = new OracleCommand("select * from my_table");
var recCount = cmd.ExecuteNonQuery();
}
ODP.Net 托管驱动程序找不到您的tnsnames.ora
文件,或者。 ldap.ora
文件(如果是甲骨文名称服务)
tnsnames.ora
文件的搜索路径如下:
- .NET 配置文件中"
<oracle.manageddataaccess.client>
"部分下的"dataSources
"部分中的数据源别名(即machine.config
、web.config
、user.config
)。 tnsnames.ora
文件中的数据源别名,位于 .NET 配置文件中TNS_ADMIN
指定的位置。位置可以由绝对或相对目录路径组成。tnsnames.ora
文件中的数据源别名与.exe
位于同一目录中。
请参阅适用于 .NET 的 Oracle 数据提供程序,托管驱动程序配置
请注意,与 ODP.NET 非托管驱动程序、SQL*Plus 或tnsping.exe
工具不同,ODP.Net 托管驱动程序不读取环境变量TNS_ADMIN
,也不读取注册表项HKLMSOFTWAREORACLEKEY_{Oracle-Home}TNS_ADMIN