尝试运行我的代码时,收到以下错误:
CS0234:名称空间“System.Data”中不存在类型或命名空间名称“OracleClient”(您是否缺少程序集引用?)
我已经包含对 System.Data.dll 和 System.Data.OracleClient.dll 的引用,但我仍然收到此错误 .
System.Data.dll
System.Data.OracleClient.dll
错误是由我的命名空间声明中的行 using System.Data.OracleClient 引起的 .
using System.Data.OracleClient
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有很多来自 System , System.Collections , System.IO 等的类,你真的不希望在没有(包括一些.NET使用它自己)的情况下构建一个.NET项目,而System.dll有一堆更多来自完全相同的命名空间,你可以在不使用的情况下获得(但你仍然会99%的时间) .
System.Data.OracleClient.OracleDataReader
using
OracleDataReader
System
System.Collections
System.IO
除非您正在编写一个绝对庞大的库,但是有数千个类覆盖重叠的用例,您自己的程序集应该使用单个命名空间 - 或者最多只能在一个命名空间中使用其他命名空间,例如 JaredksGreatCode ,其中包含 JaredksGreatCode.UserInterface 它 - 每个DLL .
JaredksGreatCode
JaredksGreatCode.UserInterface
以下对我有用:
Visual Studio - >网站 - >添加引用... - >框架 - > System.Data.OracleClient [选中此选项]
我必须添加对 Oracle.DataAccess.dll 的引用,然后我必须手动将 OracleClient.blahblah 的所有引用与 Oracle.DataAccess.Client.blahblah 相关联 .
Oracle.DataAccess.dll
OracleClient.blahblah
Oracle.DataAccess.Client.blahblah
希望这有助于其他人 .
在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>
您在 System.Data.OracleClient.dll 上添加了参考 .
5 回答
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有很多来自System
,System.Collections
,System.IO
等的类,你真的不希望在没有(包括一些.NET使用它自己)的情况下构建一个.NET项目,而System.dll有一堆更多来自完全相同的命名空间,你可以在不使用的情况下获得(但你仍然会99%的时间) .除非您正在编写一个绝对庞大的库,但是有数千个类覆盖重叠的用例,您自己的程序集应该使用单个命名空间 - 或者最多只能在一个命名空间中使用其他命名空间,例如
JaredksGreatCode
,其中包含JaredksGreatCode.UserInterface
它 - 每个DLL .以下对我有用:
Visual Studio - >网站 - >添加引用... - >框架 - > System.Data.OracleClient [选中此选项]
我必须添加对
Oracle.DataAccess.dll
的引用,然后我必须手动将OracleClient.blahblah
的所有引用与Oracle.DataAccess.Client.blahblah
相关联 .希望这有助于其他人 .
在Web配置文件中添加引用,如下所示 . 这适合我 .
您在
System.Data.OracleClient.dll
上添加了参考 .