【问题标题】:The type or namespace name 'OracleClient' does not exist in the namespace 'System.Data'命名空间“System.Data”中不存在类型或命名空间名称“OracleClient”
【发布时间】:2012-08-31 15:04:30
【问题描述】:

在尝试运行我的代码时,我收到以下错误:

CS0234:命名空间“System.Data”中不存在类型或命名空间名称“OracleClient”(您是否缺少程序集引用?)

我已包含对System.Data.dllSystem.Data.OracleClient.dll 的引用,但我仍然收到此错误。

错误是由我的命名空间声明中的using System.Data.OracleClient 行引起的。

【问题讨论】:

  • 好的。我的答案与您编辑后的不匹配,只是告诉您您已经知道的内容。我会首先查看引用的属性,并确保它们指向正确的文件,如果系统上有多个运行时,则针对 .NET 的相应版本。

标签: c# reference oracleclient system.data system.data.oracleclient


【解决方案1】:

using System.Data.OracleClient 指令意味着在尝试确定非全名的含义时应考虑该命名空间。

添加引用意味着您添加对给定程序集的引用,在本例中为 System.Data.OracleClient.dll。在 VisualStudio、SharpDevelop 或 MonoDevelop 中,您将在项目浏览器视图中看到一个引用文件夹。右键单击并“添加引用”(VisualStudio 和 SharpDevelop)或“编辑引用”(MonoDevelop),然后添加 System.Data.OracleClient.dll

如果使用 nant,您需要编辑您的 nant 脚本。

程序集和命名空间重叠,但并不完全相同。参考意味着您可以使用例如System.Data.OracleClient.OracleDataReader 因为项目现在知道代码所在的程序集。using 指令意味着您只需要键入 OracleDataReader。程序集和命名空间之间往往存在大量匹配,因为这使每个人的生活都更轻松,但有时程序集具有来自多个命名空间的类,并且命名空间被拆分为多个程序集。一个经典的例子是 mscorlib 有很多来自SystemSystem.CollectionsSystem.IO 等的类,如果没有这些类,你真的不能希望构建一个 .NET 项目(包括一些 .NET 自己使用的类),而System.dll 有更多来自完全相同的命名空间,您可以在不使用的情况下获得这些命名空间(但您仍然会在 99% 的情况下使用这些命名空间)。

除非您正在编写一个绝对庞大的库,并且有数千个类覆盖重叠的用例,否则您自己的程序集应该使用单个命名空间 - 或者最多一个与该命名空间中的其他命名空间一起使用的程序集,例如 @ 987654328@ 中包含 JaredksGreatCode.UserInterface - 每个 DLL。

【讨论】:

  • 我已经添加了对 System.Data.OracleClient.dll 的引用,它显示在我的引用文件夹中(我使用的是 Visual Studio 2010)。错误仍然存​​在。
  • 打勾是否意味着我的评论帮助您找到了问题? (如果不出意外,我想知道人们还没有被困在某件事上,在答案中添加更多内容可以帮助下一个人)。
  • 这解决了我在using System.Data.OracleClient 行中遇到的错误。
  • 我已经阅读了答案,但它没有解决我的问题。我正在使用 system.data.OracleClient 访问 oracle db。现在 system.data 中的 oracleclient 显示警告。
  • @Sribin 那么也许会问一个问题?
【解决方案2】:

以下内容对我有用:

Visual Studio --> WEBSITE --> 添加引用... --> 框架 --> System.Data.OracleClient [勾选这个选项]

【讨论】:

    【解决方案3】:

    我必须添加对Oracle.DataAccess.dll 的引用,然后我必须手动将所有对OracleClient.blahblah 的引用与 Oracle.DataAccess.Client.blahblah.

    希望这对其他人有所帮助。

    【讨论】:

      【解决方案4】:

      将引用添加到您的 Web 配置文件中,如下所示。这对我有用。


      <!--REFERENCES-->
      <compilation debug="true" targetFramework="4.5">
        <assemblies>
          <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
          <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
          <add assembly="System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        </assemblies>
      </compilation>
      

      【讨论】:

        【解决方案5】:

        您在System.Data.OracleClient.dll 上添加参考。

        【讨论】:

          猜你喜欢
          • 2015-05-18
          • 2012-04-15
          • 2010-11-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-19
          相关资源
          最近更新 更多