如何在C#应用程序中设置TNSNAMES文件的正确路径?

Mar*_*all 5 c# oracle tnsnames

这是我的问题:我在C#中使用ODP.NET dll的程序:oci.dll,ociw32.dll,Oracle.DataAccess.dll,orannzsbb11.dll,oraocci11.dll,oraociicus11.dll,OraOps11w.dll.

我有2台电脑.首先安装完整的ODAC包,然后安装第二个包.但我在exe目录中都需要dll,所以ODAC不是问题(我认为).这些计算机之间的区别是TNSNAMES文件的路径.第一个:C:\ app\OraHome_1\Network\admin\Second:C:\ Oracle\product\11.2.0\client_1 \network\admin

并在第一个CPU程序工作正常.但是在具有相同连接字符串的第二个上,无法打开连接(ORA-12154).使用SQL Plus,我可以在两台计算机上连接.

那么,我怎样才能展示我的程序通往TNSNAMES的正确途径?

SQL*_*son 13

您可以以TNS_ADMIN编程方式设置环境变量.请逐步查看此页面. 也就是说,如果您想要更改为特定TNS_NAMES.ORA文件.仍必须在客户端计算机上安装Oracle客户端.

来自ConnectionStrings - 不使用TNS:

Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
Run Code Online (Sandbox Code Playgroud)


编辑:添加第3个选项

查看这个问题,它可以帮助您找到客户端TNS_NAMES.ORA文件的当前位置- 如果您愿意,可以打开并修改(如果不存在则添加您自己的连接)