2016-04-15 65 views
0

我想用我的C#应用​​程序连接到远程Oracle数据库,但是当涉及到oracleconnection.open()将其与OracleConnection.Open()AccessViolationException当尝试连接到Oracle数据库

退出

AccessViolationException未处理 - 试图读取或写入受保护的内存。这通常表示其他内存已损坏

我的连接字符串为key="oracleconnectionstring" value="Data Source=XYZ; password=mypassword; User ID=myuserid",位于app.config文件中。

在tnsnames.ora是

XYZ = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = HostName)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVICE_NAME = XYZ) 
    ) 
) 

如果我尝试通过SQL开发人员把它连接没有任何问题,如果我尝试sqlplus中它只是崩溃(在SQL * Plus已停止工作),如果我尝试连接VS它给了我那个奇怪的错误。

它可能是什么?

编辑:如果我尝试tnsping xyz返回OK(100ms);

+0

请发布您正在使用的代码连接 - 您使用的是哪个oracle连接库 - 您尝试了什么? – Wjdavis5

+0

我正在使用Oracle.DataAccess版本4.112.2.0 Runtime v4.0.30319;代码从配置文件获取连接字符串,然后执行: 'oracleconnection = new OracleConnection(oracleconnectionstring); oracleconncetion.Open();' – Nedo2490

+0

当我在调试中分析connectionstring时,它似乎从配置中获得正确的元素; – Nedo2490

回答

0

最后,我管理完全安装了Oracle Client和ODT for VisualStudio并且它工作,我现在永远不会遇到这个问题。