我正在尝试从我的新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 at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(的Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,OpoSqlValCtx * pOpoSqlValCtx,Object src,String procedure)
在 Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn,IntPtr opsErrCtx,Object src)
在 Oracle.DataAccess.Client.OracleConnection.Open()
在 OracleConnectionS.Program.Main(String [] args)in C:\ Users \ Simetri \ Documents \ Visual Studio 2010 \项目\的OracleConnection \的OracleConnection \的Program.cs:行 19"
有关为什么会发生这种情况的任何想法?
更新
如果我以管理员身份运行visual studio,我就不会得到异常,我可以很好地连接到数据库。
我尝试向Oracle Directory C:\Oracle
提供FULL CONTROL权限。但是如果我以正常方式运行Visual Studio(而不是管理员),我会继续获得异常。
背景资料
- 我正在使用Windows 7 64位
- Visual Studio 2010
- 我可以通过SQL * PLUS
答案 0 :(得分:3)
因此,在安装了所有类型的ODAC并搜索与此相关的每个帖子之后。
最后,32位版本的清洁安装是解决方案。
为什么?
与开发Visual Studio的版本有关。如果您正在开发一个控制台应用程序,您将对客户端版本没有问题,但如果您使用的是Web项目,那么您肯定需要32位版本
答案 1 :(得分:0)
请尝试将连接字符串重新格式化为此表单并查看其工作原理
<add name="LoisDataAccess" connectionString="Data Source=LOISPRD;Persist Security Info=True;User ID=ABC;Password=DEF" providerName="System.Data.OracleClient" />
答案 2 :(得分:0)
如果您使用的客户端是“即时客户端”,那么通过将一些Oracle-DLL复制到您的解决方案中可能会更好一些 - 参见this。
如果可能,我建议使用不同的.NET提供程序......根据我的经验,大多数商业提供程序比Oracle .NET提供程序的问题要小得多 - 请参阅here on SO。