如何在我的开发环境中从Windows 7 x64上的C#连接到Oracle数据库

 蜗牛 发布于 2023-02-08 12:07

我在Windows 7x64上连接到Oracle数据库时遇到了困难

我的环境如下:

Windows 7x64

Visual Studio 2012

Oracle 10g(带32位客户端)

的WinForms

我已将所有项目的目标CPU明确地设为x86 CPU(而不是Any或x86)

我正在使用DbProviderFactory.GetFactory进行连接

我的app.config中的My ConnectionString条目如下所示:


(我已尝试使用各种样式的连接字符串但没有成功)

当我编译应用程序时,如果我从Debug文件夹运行可执行文件,它就能正常连接.但是,如果我尝试在Visual Studio中运行它,则在打开连接时它会失败

ORA-06413: Connection not open.\n

这是一个如何被调用的例子:

[TestMethod]
public void ConnectToOracle_Success()
{
    var connectionStringSettings = ConnectionBuilder.GetConnectionStringSetting(OracleConnectionName);
    var providerFactory = ConnectionBuilder.GetProviderFactory(connectionStringSettings);
    ConnectionBuilder.ValidateConnectionString(connectionStringSettings);
    using (var connection = providerFactory.CreateConnection())
    {
        Assert.IsNotNull(connection);
        connection.ConnectionString = connectionStringSettings.ConnectionString;
        try
        {
             connection.Open();
        }
        catch (Exception e)
        {
            Assert.Equals(e.Message, "");
        }
    }
}

我在Windows 7x64上看到过与Visual Basic 6类似的东西,而Oracle并不喜欢它安装的路径(即括号"Programs(x86)").这是同类的事情,还是有另一种说服Oracle行事的方式.

1 个回答
  • 这可能是OCI客户端版本问题.请参阅https://community.oracle.com/message/11103466.

    我已经看到了很多这方面的问题.大多数情况下,这与ODP.NET程序集(例如Oracle.DataAccess)有关,它与操作系统体系结构的版本不同(我们在这里讨论位).

    你可以做一些事情:

      安装32位和64位ODP.NET客户端工具(包括该架构的OCI),可从oracle.com免费下载.

      为特定的处理器体系结构构建应用程序,例如32位.

      使用不依赖于OCI的第三方Oracle客户端连接器(这就是问题所在).我不建议这样做,因为这是大多数时候昂贵的解决方案.

    2023-02-08 12:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有