gpt4 book ai didi

c# - 无法从 C#.net 应用程序连接到 oracle 服务器

转载 作者:行者123 更新时间:2023-11-30 14:56:40 25 4
gpt4 key购买 nike

我正在尝试连接到远程 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com