【问题标题】:Error in Database connection C# -> OracleDB数据库连接 C# -> OracleDB 中的错误
【发布时间】:2014-08-30 15:10:15
【问题描述】:

我尝试从 c# 项目连接到 OracleDB。

SqlConnection thisConnection = new SqlConnection(
"Server=127.0.0.1:3306;Database=db1;User id=abc;Password=psw;");

运行代码时会抛出异常:

“System.Data.SqlClient.SqlException”类型的第一次机会异常 发生在 System.Data.dll
网络相关或 建立连接时发生特定于实例的错误 SQL 服务器。服务器未找到或无法访问。核实 实例名称正确且 SQL Server 配置为 允许远程连接。 (提供者:SQL 网络接口,错误:25 - 连接字符串无效)

我也尝试连接本地 mysql 数据库,但抛出了相同的异常。
我可以使用 Oracle SQL 开发工具连接到服务器。

问题出在哪里?

【问题讨论】:

  • OracleDB 使用 SqlConnection ???。你知道SqlConnection 是为了SQL Server

标签: c# sql oracle


【解决方案1】:

您正在使用 SqlConnection (SQL Server) 连接到 Oracle 数据库。请参阅有关如何连接到 Oracle 数据库的答案:

https://stackoverflow.com/a/12568350/2382032

正如 Flindeberg 指出的,这里是 NuGet 链接:

https://www.nuget.org/packages/odp.net.managed/

【讨论】:

  • 呃,不,那是非托管驱动程序,不要使用那个。大约一年前,他们有了一个托管驱动程序(即 .NET)。
  • 我链接到的答案与您的答案oracle.com/technetwork/topics/dotnet/index-085163.html 有一个链接。不过,谢谢,我将使用 nuget 链接更新我的答案。我希望他们在我必须连接到 Oracel 的那一天恢复 NuGet!
  • 现在我可以连接到服务器,但登录失败。我必须用特殊字符包围密码还是这样工作:“User ID=username;Password=asd;.....”?
  • 我在这里看到的每个例子都没有用引号括起来:connectionstrings.com/oracle
【解决方案2】:

您正在使用SqlConnection 类。该类用于连接微软的SQL Server数据库。

由于您使用的数据库是 Oracle 的数据库,因此您需要一个“Oracle”特定的连接类。

可以使用OracleDBConnection 类,尽管这不建议使用,因为它已被弃用

相反,您可以使用 Oracle 提供和支持的 ODP.NET

希望对你有帮助!!!

【讨论】:

  • 请注意,这种连接方式已被弃用:msdn.microsoft.com/en-us/library/77d8yct7.aspx
  • System.Data.oracleClient 已被弃用
  • 感谢您指出这一点。我忘记了它已被弃用。已相应地编辑了我的答案!!!
【解决方案3】:

您正在使用 MS SQL 服务器的连接器,请不要这样做。您可以在 NuGet 获得的 Oracle Managed ODP.NET driver 唯一应使用的驱动程序。 Documentation is available here.

确保使用托管驱动程序,而不是非托管驱动程序。

使用示例:

var connection = new OracleConnection(str);
using (var command = new OracleCommand(commandStr, connection))
{
   // do stuff with command
}

【讨论】:

    【解决方案4】:

    尝试使用来自 NuGet 的 ODP.Net 驱动程序。

    按照此处的说明进行操作:
    Connect to oracle from c#

    【讨论】:

      猜你喜欢
      • 2016-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-11
      • 1970-01-01
      • 1970-01-01
      • 2012-01-21
      • 1970-01-01
      相关资源
      最近更新 更多