【问题标题】:How to connect Oracle Database to Visual Studio C# project如何将 Oracle 数据库连接到 Visual Studio C# 项目
【发布时间】:2017-03-16 08:21:04
【问题描述】:

我正在尝试连接在 Oracle 11g 中创建的数据库。这是我想用来检查 VS 中的连接的简单代码,但它甚至不起作用:

    OleDbConnection conn = new OleDbConnection("Provider=MSDAORA; Data Source = localhost; User ID = library; Password = library; Unicode = True");
    private void button1_Click(object sender, EventArgs e)
    {
        conn.Open();
    }

单击按钮时出现此错误:

System.Data.dll 中出现“System.Data.OleDb.OleDbException”类型的未处理异常

附加信息:尝试检索错误 ORA-01019 的文本时出错

当我进入服务器资源管理器 --> 添加连接并输入我的数据库信息时,它工作正常,并且连接显示在服务器资源管理器中。

我也在 VS 中收到警告:

严重性代码描述项目文件行抑制状态 警告 正在构建的项目的处理器架构“x86”与参考“Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64”, “AMD64”的处理器架构不匹配”。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改项目的目标处理器体系结构,以便在项目和参考之间对齐处理器体系结构,或者依赖具有与项目的目标处理器体系结构匹配的处理器体系结构的参考。书目1

【问题讨论】:

  • 您应该使用托管 oracle 客户端。 nuget.org/packages/Oracle.ManagedDataAccess。您还应该使用 c# 或 .net 检查/搜索 SO 中的 oracle 错误 ORA-01019
  • 这个正确的连接字符串怎么样 => Provider=OraOLEDB.Oracle;Data Source=localhost;User Id=library; Password=library;
  • @CodeNotFound,用这个字符串我得到错误,提供者 OraOLEDB.Oracle 没有在本地机器上注册。

标签: c# oracle oracle11g


【解决方案1】:

我真的建议您使用 Oracle 的 ODP.net。它在 Oracle 和 .NET 之间非常有效地工作,并且可以利用通过 Oracle 调用接口 (OCI) 提供的许多低级功能(例如批量插入/更新)。

从那里,ODP.net 有一个 OracleConnectionStringBuilder 类,可以消除大多数数据库的连接字符串问题:

OracleConnectionStringBuilder sb = new OracleConnectionStringBuilder();
sb.DataSource = "<your datasource>";
sb.UserID = "library";
sb.Password = "library";

OracleConnection conn = new OracleConnection(sb.ToString());
conn.Open();

如果您的数据库是远程的,Oracle 的 EZ Connect 让您不必担心 TNS 名称:

sb.DataSource = "hostname.whatever.com:1521/ServiceName";

【讨论】:

  • 谢谢它的工作,我可以连接到数据库,但是当我把这段代码放在 button1.click 后面时我遇到了麻烦。我收到错误:类结构或接口成员声明中的无效标记“=”我想在程序启动时启动此代码,而不是在我单击按钮时启动。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-22
  • 1970-01-01
  • 1970-01-01
  • 2020-07-16
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
相关资源
最近更新 更多