【问题标题】:Oracle C# Connection Unidentifiable errorOracle C# 连接无法识别的错误
【发布时间】:2021-03-04 01:33:11
【问题描述】:

我是 C# 新手,并试图用一段简单的代码连接到 Oracle 数据库。我遇到了很多连接错误,并尝试通过谷歌搜索解决它们并解决了它们。

我现在在conn.Open(); 语句中遇到错误:

Oracle.DataAccess.dll 中出现“Oracle.DataAccess.Client.OracleException”类型的未处理异常

附加信息:外部组件已抛出异常。

我不知道这个错误是什么意思。我尝试并搜索了很多,但找不到任何东西。

代码:

string connection_string = "Data Source=localhost;Persist Security Info=True;User ID=system;Password=6677";
OracleConnection conn = new OracleConnection(connection_string);
conn.Open();

我还尝试了许多其他connection_string,包括

Data Source=(DESCRIPTION =" + "(ADDRESS = (PROTOCOL = TCP)(HOST =localhost)(PORT = 1521))" + "(CONNECT_DATA =" + "(SERVER = DEDICATED)" + "(SERVICE_NAME = XE)));" + "User Id=system;Password=6677;"

没有任何效果。

【问题讨论】:

    标签: c# oracle oracle11g


    【解决方案1】:

    根据您的%PATH%,您确实搞砸了您的 Oracle 安装。

    正确删除所有这些(请参阅How to uninstall / completely remove Oracle 11g (client)?)并进行全新安装。如果您需要 32 位和 64 位客户端,请关注此:BadImageFormatException. This will occur when running in 64 bit mode with the 32 bit Oracle client components installed

    【讨论】:

      【解决方案2】:

      这可能有很多不同的东西。

      1. 尝试使用另一个用户“system”是内部用户并具有 SYSDBA 权限。您可以尝试添加新用户吗:

      CREATE USER test IDENTIFIED BY test;

      并使用此连接字符串进行连接:

      "SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE)));uid=test;pwd=test;"
      

      (不同的连接字符串可以看here)

      1. 仔细检查您的客户端安装。在您的环境变量屏幕截图中,您似乎安装了 2 个客户端:32 位和 64 位。如果您在项目中使用 64 位 DLL,请删除 32 位环境变量。

      【讨论】:

      • 你能指导我在哪里添加新用户吗?我是这方面的新手:- 2. 是的,如果我刚刚安装了 32 位客户端,因为删除它们会给我一个 ora-12154 错误,解决方案是保留两个客户端
      • 创建新用户的说明在我的回答中:使用 sqlplus 或 sqldeveloper 连接到您的 XE 数据库并使用以下说明 CREATE USER test IDENTIFIED BY test;
      • 我尝试创建新用户并使用其他一些连接字符串进行了测试。在这种情况下不起作用
      猜你喜欢
      • 1970-01-01
      • 2013-07-24
      • 2016-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-13
      相关资源
      最近更新 更多