ODAC:对象引用未设置为对象的实例

本文关键字:对象 实例 设置 对象引用 ODAC | 更新日期: 2023-09-27 18:21:18

我正在尝试连接到Oracle Express 11g。我正在将ODAC 12c与Visual Studio 2015一起使用。以下是我尝试连接的方式:

OracleConnection con;
con = new OracleConnection("User Id=SYSTEM;Password=manager;Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.1.22)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = XE)))");
con.Open();

应用程序崩溃并给出Exception(而不是OracleException):Object reference not set to an instance of an object.如果我没有设置连接字符串,它会按预期给出OracleException。怎么了?

ODAC:对象引用未设置为对象的实例

请确保引用正确,Oracle.DataAccess.dll的版本正确。

请按照以下步骤操作。它对我有效。

  1. 在'<>中查找并复制oraons.dll文件product''12.2.0''client_1'在您的oracle安装路径上

  2. 将文件粘贴到'<>product''12.2.0''client_1''bin目录

请尝试再次调用代码。

请尝试此解决方案:

string connString = "User Id=SYSTEM;Password=manager;Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.1.22)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = XE)))";
OracleConnection conn = new OracleConnection();
conn.ConnectionString = connString;
conn.Open();

有关更多信息:C#中的Oracle连接-连接字符串

OracleConnection使用Oracle.DataAccess DLL(已弃用,请参阅ODP.net)

您可能必须安装oracle客户端11g才能提供必要的DLL。几点:

  1. 确保tns配置正确
  2. 根据您的构建设置(32/64位)安装ora客户端
  3. 请确保将DLL引用添加到解决方案中