命名空间“System.Data”中不存在类型或命名空间名称“OracleClient”

时间:2012-08-31 15:04:30

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

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

  

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

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

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

5 个答案:

答案 0 :(得分:6)

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%的时间)。

除非您正在编写一个绝对庞大的库,但是有数千个类覆盖重叠的用例,您自己的程序集应该使用单个命名空间 - 或者最多只能在一个命名空间中使用其他命名空间,例如{ {1}}其中包含JaredksGreatCode - 每个DLL。

答案 1 :(得分:1)

以下对我有用:

Visual Studio - >网站 - >添加参考... - >框架 - > System.Data.OracleClient [选中此选项]

答案 2 :(得分:0)

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

希望这有助于其他人。

答案 3 :(得分:0)

在您的网络配置文件中添加引用,如下所示。这对我有用。

<!--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>

答案 4 :(得分:-2)

您可以在System.Data.OracleClient.dll上添加引用。