在
Windows 7×64上连接到Oracle数据库时遇到困难
我的环境如下:
> Windows 7×64
Visual Studio 2012
> Oracle 10g(带32位客户端)
> WinForms
我将所有项目的目标CPU显式地定义为x86 CPU(而不是Any或x86)
我使用DbProviderFactory.GetFactory连接
我的app.config中的ConnectionString条目如下所示:
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)”).这是同样的事情,还是有另一种方式来说服甲骨文的行为.