【问题标题】:OracleConnection throwing exceptionOracleConnection 抛出异常
【发布时间】:2009-11-10 22:23:12
【问题描述】:

我正在学习如何使用 Oracle,并且正在使用 C#/Visual Studio。作为参考,我关注this simple tutorial,并完成了所有先决条件(安装了数据库和安装了开发工具的 ODAC)。下面的代码应该创建一个用于连接到数据库的对象,它会引发一个异常,提示“对象引用未设置为对象的实例”。并在我尝试运行程序时指向“conn”:

OracleConnection conn = new OracleConnection ();

无论我是否将连接字符串作为参数传递,都会发生同样的事情。我有所需的 Oracle.DataAccess 参考集,所以我不知道我是否会遗漏其他东西?

数据库已安装并且可以正常工作,但这与此问题无关。

【问题讨论】:

  • 您的连接属性是否设置了 tnsnames.ora 文件?
  • 是的,该文件包含连接数据。有什么具体我应该注意的吗?我使用的是 express edition 数据库,文件中有 XE、EXTPROC_CONNECTION_DATA 和 ORACLR_CONNECTION_DATA 的条目。
  • 绝对是 ODP.NET 中的一个错误......这条指令不应该失败,或者如果它失败了,它应该抛出一个更明确的异常。没有人会故意抛出 NullReferenceException ;)
  • 我写了一个更简单的教程,可能会有所帮助:splinter.com.au/blog/?p=156
  • 感谢大家的帮助,看来问题是因为我正在开发的操作系统(64x win7)...同一团队的同事使用 xp 运行应用程序没有问题。

标签: c# oracle exception connection


【解决方案1】:

我记得刚开始使用 C# 启动和运行 Oracle 数据提供程序时也遇到了困难。我的 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...
  }
}

【讨论】:

    猜你喜欢
    • 2012-09-09
    • 2016-08-22
    • 2013-05-24
    • 2011-05-30
    • 1970-01-01
    • 2011-02-25
    • 2012-01-24
    相关资源
    最近更新 更多