【问题标题】:LINQ to DataSet, DataTable.AsEnumerable() not recognizedLINQ to DataSet,DataTable.AsEnumerable() 无法识别
【发布时间】:2011-04-26 08:17:28
【问题描述】:

我是LINQ 的新手,我正在尝试用它查询我的DataSet。所以我跟着this example 信了,但它不起作用。

我知道我的DataTable最后需要.AsEnumerable,但IDE无法识别。我究竟做错了什么?我是否遗漏了示例中未显示的引用/导入(不会是第一次 MSDN 示例不太正确),如果是,是哪一个?还是完全是别的东西?

示例代码:

Imports System
Imports System.Linq
Imports System.Linq.Expressions
Imports System.Collections.Generic
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.Common
Imports System.Globalization


//Fill the DataSet.
Dim ds As New DataSet()
ds.Locale = CultureInfo.InvariantCulture
//See the FillDataSet method in the Loading Data Into a DataSet topic.
FillDataSet(ds)

Dim products As DataTable = ds.Tables("Product")

Dim query = From product In products.AsEnumerable() _
            Select product
Console.WriteLine("Product Names:")
For Each p In query
    Console.WriteLine(p.Field(Of String)("Name"))
Next

我的项目中的引用是:

System
System.Data
System.Drawing
System.Windows.Forms
System.Xml

【问题讨论】:

    标签: .net linq visual-studio-2010 dataset


    【解决方案1】:

    虽然包含扩展的类位于 System.Data 命名空间中,但它位于默认情况下未添加到项目中的程序集中。在您的项目中添加对System.Data.DataSetExtensions 的引用,应该没问题。请记住,即使在您添加了引用之后,任何希望使用该类中定义的扩展方法的类也需要具有 System.Data 的 using 语句。

    【讨论】:

    • 谢谢,现在可以了!我一直在扯这个头发。 :) 为 System.Data.DataSetExtensions 向所有人 +1,但您会得到“接受”以获得更好的解释。再次感谢。
    • 为什么项目的引用中已经包含了using语句,为什么还要添加using语句?
    • @Charmie using 语句使命名空间在文件/类中可用。因为它是一种扩展方法,所以您不能使用完整的命名空间(用作扩展时)引用它,因此必须包含命名空间。
    • 我已将程序集引用添加到 System.Data.DataSetExtensions (C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Data.DataSetExtensions.dll ) 并拥有必要的using System.Datausing System.Data.DataSetExtensions,但我收到错误消息“名称空间'System.Data' 中不存在类型或名称空间名称'DataSetExtensions'(您是否缺少程序集引用?) "
    【解决方案2】:

    我认为您可能需要在AsEnumerable 工作之前将System.Data.DataSetExtensions 引用添加到您的项目。

    【讨论】:

      【解决方案3】:

      您需要参考System.Data.DataSetExtensions

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-09
        • 1970-01-01
        • 2012-04-03
        • 2021-11-06
        • 2012-05-03
        相关资源
        最近更新 更多