5

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

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

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

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

4

5 回答 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指令意味着您只需要 type OracleDataReader。程序集和命名空间之间往往存在大量匹配,因为这使每个人的生活都更轻松,但有时程序集具有来自多个命名空间的类,并且命名空间被拆分为多个程序集。一个经典的例子是 mscorlib 有很多来自System, System.Collections,的类System.IO等等,你真的不希望在没有的情况下构建一个 .NET 项目(包括一些 .NET 自己使用的项目),而 System.dll 有更多来自完全相同的命名空间,你可以在不使用的情况下获得(但你仍然会在 99% 的时间里)。

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

于 2012-08-31T15:18:02.883 回答
3

以下对我有用:

Visual Studio --> WEBSITE --> 添加引用... --> 框架 --> System.Data.OracleClient [选中此选项]

于 2017-11-09T16:51:14.250 回答
0

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

希望这对其他人有帮助。

于 2012-10-18T13:15:04.123 回答
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>
于 2016-12-03T11:19:05.343 回答
-3

您在System.Data.OracleClient.dll.

于 2012-08-31T15:17:13.387 回答