c# - 命名空间 'OracleClient' 中不存在类型或命名空间名称 'System.Data'

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

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

CS0234: The type or namespace name 'OracleClient' does not exist in the namespace 'System.Data' (are you missing an assembly reference?)

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

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

最佳答案

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

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

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

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

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

关于c# - 命名空间 'OracleClient' 中不存在类型或命名空间名称 'System.Data',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12218027/

相关文章:

32bit-64bit - 安装32位和64位Oracle客户端,但32位安装程序崩溃

c# - 使用 .NET 4.5 解压缩受密码保护的 ZIP 文件

c# - 使用 DataLakeStore FileSystem ManagementClient 上传到 Azure Data Lake 的 30Mb 限制

c++ - 引用被重新安置在这里还是别的什么

c++ - C++ 语法解释中的赋值运算符重载

.net - ODP.NET是否需要安装Oracle客户端

c# - MVC 空查询字符串参数奇怪的行为

c# - LinqKit PredicateBuilder 返回所有或非行

c++ - 为什么数组的 x 和 &x 相同

reporting-services - 32 位 Oracle 客户端的 SSRS 报告无法在 64 位环境中工作