加入收藏 | 设为首页 | 会员中心 | 我要投稿 宜春站长网 (https://www.0795zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

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

发布时间:2021-01-08 15:26:19 所属栏目:Windows 来源:网络整理
导读:在 Windows 7×64上连接到Oracle数据库时遇到困难 我的环境如下: Windows 7×64 Visual Studio 2012 Oracle 10g(带32位客户端) WinForms 我将所有项目的目标CPU显式地定义为x86 CPU(而不是Any或x86) 我使用DbProviderFactory.GetFactory连接 我的app.config

在 Windows 7×64上连接到Oracle数据库时遇到困难

我的环境如下:

> Windows 7×64
Visual Studio 2012
> Oracle 10g(带32位客户端)
> WinForms

我将所有项目的目标CPU显式地定义为x86 CPU(而不是Any或x86)

我使用DbProviderFactory.GetFactory连接

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

<add name="MYORACLE"
connectionString = "User ID=MYPASSWORD;Password=MYPASSWORd;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MYHOST)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=MYSERVICE)));"
providerName="System.Data.OracleClient" />

(我尝试过各种样式的连接字符串,没有成功)

当我编译应用程序时,如果我从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 7×64上看到与Visual Basic 6类似的东西,而Oracle不喜欢安装它的路径(即括号“程序(x86)”).这是同样的事情,还是有另一种方式来说服甲骨文的行为.

哦,Oracle提供者中可怕的括号.最简单的方法是使用更新版本的客户端,问题被修复.使用Oracle 10g数据库,您可以安全地使用高达12.1.x的客户端(可从这里获得: 64-bit Oracle Data Access Components).

使用64位操作系统,我使用了另一个技巧:首先安装32-bit版本的客户端,并安装64位版本.这样一些应用程序,如Office或旧的VS dev Web服务器仍然可以工作.

(编辑:宜春站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读