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

5
在尝试运行我的代码时,我收到了以下错误:
CS0234:命名空间'System.Data'中不存在类型或命名空间名称为'OracleClient'的内容(是否缺少程序集引用?)
我已经包含了对'System.Data.dll'和'System.Data.OracleClient.dll'的引用,但我仍然收到这个错误。
错误是由我的命名空间声明中的'using System.Data.OracleClient'行引起的。

好的。现在我的答案不匹配,只是告诉您已经知道的内容。我首先会查看引用的属性,确保它们指向正确的文件,并且对于系统上有多个 .NET 运行时版本,要选择相应的版本。 - Jon Hanna
5个回答

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%的情况下仍然会使用)。
除非您正在编写一个绝对庞大的库,其中包含数千个涵盖重叠用例的类,否则您自己的程序集应该使用单个命名空间 - 或者最多使用一个带有某些其他命名空间的单个DLL,例如JaredksGreatCode中具有其内部的JaredksGreatCode.UserInterface

我已经添加了对System.Data.OracleClient.dll的引用,并且它显示在我的引用文件夹中(我正在使用Visual Studio 2010)。但是错误仍然发生。 - jaredk
这个勾号表示我的评论有帮助你找到问题了吗?(如果没有其他的事情,我想知道人们是否仍然卡在某些地方,另外,添加更多的答案可能会帮助下一个人)。 - Jon Hanna
这解决了我在 using System.Data.OracleClient 行遇到的错误。 - jaredk
我已经阅读了答案,但它没有解决我的问题。我正在使用system.data.OracleClient来访问Oracle数据库。现在,系统中的OracleClient显示出一个警告。 - Sribin
@Sribin 那么也许可以问一个问题? - Jon Hanna
还有另一个错误与Oracle无关,但显示了所有的Oracle客户端错误。一旦我解决了其他错误,Oracle错误就自动消失了。我想现在是时候使用其他数据访问包了,因为我收到了它已经过时的警告。但我对其他任何东西都不太了解——我对Oracle非常陌生。 - Sribin

3
以下方法适用于我:
Visual Studio -> 网站 -> 添加引用... -> 框架 -> System.Data.OracleClient [勾选此选项]

0

我不得不添加一个对Oracle.DataAccess.dll的引用,然后我不得不手动将所有对OracleClient.blahblah的引用与Oracle.DataAccess.Client.blahblah相关联。

希望这能帮助其他人。


0
请在您的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>

-3

你需要在代码中添加对 System.Data.OracleClient.dll 的引用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接