【问题标题】:The type or namespace name 'DataSetExtensions' does not exist in the namespace 'System.Data' (are you missing an assembly reference?)命名空间“System.Data”中不存在类型或命名空间名称“DataSetExtensions”(您是否缺少程序集引用?)
【发布时间】:2015-02-01 20:58:04
【问题描述】:

我知道这是一个常见错误,但我对添加到项目中的 System.Data.DataSetExtensions.dll 有正确的引用,并且我的项目是为 .net 4.5 构建的 SQL CLR 项目,我在以下行:

using System.Data.DataSetExtensions;

我还检查了 dll 的属性,它引用了 4.5 dll 的正确版本,那么还有什么可能导致这个问题?这是 SQL CLR 项目的问题吗?

【问题讨论】:

  • 问题是没有命名空间System.Data.DataSetExtensionsDataSetExtensionsSystem.Data命名空间中,在System.Data.DataSetExtensions.dll程序集中。
  • 将此添加到您的使用顶部using System.Data;
  • 好吧,我现在觉得很傻。请对此作出回答,我将其标记为正确

标签: c# sql .net reference sqlclr


【解决方案1】:

System.Data.DataSetExtensions 是程序集,而不是命名空间。您只需要向System.Data.DataSetExtensions.dll 添加一个reference(正如您所说的那样),然后为System.Data 命名空间添加一个 using 指令:

using System.Data;

这将拉入该命名空间中类中的所有扩展方法,例如DataRowExtensions.

当您查看文档时,请始终注意命名空间和程序集名称之间的区别 - 它们通常是相同的,但它们在逻辑上是独立的。

【讨论】:

  • 有时可以使用System.Data.DataSetExtensions 作为命名空间。见dotnetfiddle.net/OOvlLj - 你知道为什么会这样吗?
  • @ShaunLuttin:很奇怪。我怀疑有一个名为 somewhere 的命名空间,但我找不到任何文档。
  • 是否还有其他与此扩展 DLL 相关的陷阱?我已按照这些说明进行操作,但仍然无法访问我的 IEnumerable<T> 对象上的 ToDataTable<T>() 方法。
  • 命名空间存在于程序集中,但它只包含两个内部类,因此未记录,可以忽略。
  • @RLH: ToDataTable 不是来自DataSetExtensions dll 的方法。它可能是您在互联网上找到的(例如here,但它绝对不是 .NET 框架的一部分。
猜你喜欢
  • 1970-01-01
  • 2015-02-14
  • 2017-05-04
  • 2018-07-15
  • 2021-08-12
  • 2021-07-27
  • 2012-07-26
  • 2019-03-19
  • 1970-01-01
相关资源
最近更新 更多