我正在尝试连接到远程 Oracle 服务器。我的连接字符串 -
OdbcConnection con = new OdbcConnection();
con.ConnectionString = @"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST= xxxx)(PORT=xxxxx))(CONNECT_DATA=(SERVER=dedicated)(SERVICE_NAME=abc.domain.com)));USER ID=user1;Password=pwd;";
我遇到错误说 - “错误 [IM002] [Microsoft] [ODBC 驱动程序管理器] 数据源名称未找到且未指定默认驱动程序”(System.Data.Odbc.OdbcException)异常消息 = “错误 [IM002] [ Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序",异常类型 = "System.Data.Odbc.OdbcException",异常 WinRT 数据 = ""
我根据我的 TNSNAMES.ora 指定了我的连接字符串
我的数据库在 TNSNAMES.ora 中的条目是这样的:
DB.WORLD=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST= xxxx)
(PORT=xxxxx)
)
(CONNECT_DATA=
(SERVER=dedicated)
(SERVICE_NAME=abc.domain.com)
)
)
谁能解释一下这个错误。请帮助/建议我的连接字符串是否出错以及如何从我的 Windows 应用程序连接到 Oracle 服务器
最佳答案
首先使用 nuget packet manager 安装 odp.net.managed :
Install-Package odp.net.managed
odp.net.managed 在没有预装 Oracle Client 的情况下工作
下一步:
const string connectionString = @"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST= xxxx)(PORT=xxxxx))(CONNECT_DATA=(SERVER=dedicated)(SERVICE_NAME=abc.domain.com)));USER ID=user1;Password=pwd;";
var connection = new OracleConnection(connectionString);
connection.Open();
如果您在应用程序文件夹中有 tnsnames.ora:
const string connectionString = @"Data Source=DB.WORLD;USER ID=user1;Password=pwd;";
var connection = new OracleConnection(connectionString);
connection.Open();
或者如果 tnsnames.ora 在其他文件夹中:
Environment.SetEnvironmentVariable("TNS_ADMIN", @"path_to_tnsadmin.ora");
const string connectionString = @"Data Source=DB.WORLD;USER ID=user1;Password=pwd;";
var connection = new OracleConnection(connectionString);
connection.Open();
关于c# - 无法从 C#.net 应用程序连接到 oracle 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22247915/