2

我正在尝试从我的新 PC 连接到我的 Oracle 数据库。我刚刚安装了 Visual Studio 和 ODAC。但是当我尝试做一个简单的连接时,我得到一个空消息、空源、空数字的异常,只是错误代码是-2147467259

OracleConnection Prueba;
Prueba = new OracleConnection("Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX.XXX.XXX.XXX)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXXX)));User Id=XXX;Password=XXX;Pooling=true;Max Pool Size=10;Min Pool Size=1");
Prueba.Open();

异常详细信息
这是 Exception.ToString() 代码:

“Oracle.DataAccess.Client.OracleException.HandleErrorHelper 处的 Oracle.DataAccess.Client.OracleException(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,OpoSqlValCtx* pOpoSqlValCtx,Object src,字符串过程)
在 Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src)
at Oracle.DataAccess.Client.OracleConnection.Open()
at OracleConnectionS.Program.Main(String[] args) 在 C:\Users\Simetri\Documents\Visual Studio 2010\Projects \OracleConnection\OracleConnection\Program.cs:第 19 行"

关于为什么会发生这种情况的任何想法?

更新

如果我以管理员身份运行 Visual Studio,则不会出现异常,并且可以很好地连接到数据库。

我尝试向 Oracle Directory 授予 FULL CONTROL 权限C:\Oracle。但是,如果我以正常方式(而不是以管理员身份)运行 Visual Studio,我会不断收到异常。

背景信息
- 我使用的是 Windows 7 64 位
- Visual Studio 2010
- 我可以使用 SQL*PLUS 进行连接

4

3 回答 3

4

因此,在安装了各种版本的 ODAC 并搜索了与此相关的每个帖子之后。

最后,32 位版本的全新安装是解决方案。

  • 首先,您需要卸载您曾经安装的所有其他 oracle 客户端。
  • 之后,查找您想要的任何 ODAC 版本(如果可能,请提供最新版本),但请务必下载 32 位版本。

为什么?

嗯,这与开发 Visual Studio 的版本有关。如果您正在开发控制台应用程序,则客户端版本不会有问题,但如果您使用的是 Web 项目,那么您肯定需要 32 位版本。

  • 最后确保目标平台Visual Studio中的所有项目都是“32位”
  • 并引用您刚刚安装的新 Oracle.DataAccess.dll
于 2013-12-19T14:59:24.850 回答
0

请尝试将您的连接字符串重新格式化为这种形式,看看它是如何工作的

<add name="LoisDataAccess" connectionString="Data Source=LOISPRD;Persist Security Info=True;User ID=ABC;Password=DEF" providerName="System.Data.OracleClient" />
于 2012-09-17T14:07:53.697 回答
0

如果您使用的客户端是“Instant Client”,那么最好将一些 Oracle-DLL 复制到您的解决方案中——请参阅

如果可能的话,我会建议使用不同的 .NET 提供程序...根据我的经验,大多数商业提供的问题比 Oracle .NET 提供程序的问题要少得多 - 请参阅此处的 SO

于 2012-09-17T14:09:39.440 回答