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

Nik*_*nov 7 c# oracle visual-studio odac

我正在尝试连接到 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();
Run Code Online (Sandbox Code Playgroud)

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

ZKS*_*ZKS 6

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

\n\n

请按照以下步骤操作。这对我有用。

\n\n
    \n
  1. 在 Oracle 安装路径上的 \xe2\x80\x98<>product\\12.2.0\\client_1\xe2\x80\x99 中找到并复制 oraons.dll 文件

  2. \n
  3. 将文件粘贴到 \xe2\x80\x98<>product\\12.2.0\\client_1\\bin 目录中

  4. \n
\n\n

尝试再次调用该代码。

\n


小智 0

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

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

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