2009-11-10 78 views
1

我正在学习如何使用Oracle并使用C#/ Visual Studio。作为参考,我遵循this simple tutorial,并完成了所有先决条件(安装了数据库并安装了开发工具的ODAC)。下面的代码应该创建一个连接到数据库的对象,引发一个异常,说“对象引用未设置为对象的实例”。并以“conn将”点,当我尝试运行程序:OracleConnection抛出异常

OracleConnection conn = new OracleConnection(); 

同样的事情发生,无论我是否通过连接字符串作为一个参数或没有。我有所需的Oracle.DataAccess参考集,所以我不知道我是否可能错过了其他的东西?

数据库已安装并正常工作,但不应该对此问题做任何事情。

+0

你有你的连接属性tnsnames.ora文件中的设置? – 2009-11-10 23:07:48

+0

是的,该文件包含连接数据。我应该注意什么?我正在使用快速版数据库,在文件中有XE,EXTPROC_CONNECTION_DATA和ORACLR_CONNECTION_DATA条目。 – 2009-11-10 23:45:26

+1

绝对是ODP.NET中的一个错误......这个指令不应该失败,或者如果是这样,它应该抛出一个更明确的异常。没有人曾故意抛出NullReferenceException;) – 2009-11-11 00:33:11

回答

2

我记得在开始时使用C#运行Oracle Data Provider时遇到了困难。我的tnsnames.ora文件位于C:\ oracleInstallDir \ 10.2.0 \ client_1 \ NETWORK \ ADMIN目录中。

我的tnsnames.ora是这样的:

XE= 
(DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))) 

请确保您有Oracle.DataAccess引用添加到您的C#项目。

然后还要确保你

using Oracle.DataAccess.Client; 

public class OracleMgr{ 
    public OracleMgr(){ 
    string connectionStr = "Data Source=XE;User Id=user1;Password=abc"; 
    OracleConnection conn = new OracleConnection(connectionStr); 
    do stuff... 
    } 
}