DataTable不包含AsEnumerable的定义

时间:2012-02-09 19:18:13

标签: c# asp.net linq-to-dataset

使用linq查询数据表会返回以下错误:CS0117:'DataSet1.map DataTable'不包含'AsEnumerable'的定义

Project包含System.Data.Datasetextensions的参考。

这是代码。

using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration;
using System.Reflection;
using System.Data;
using System.Linq;
using System.Data.Linq;
using System.Data.Common;
using System.Data.DataSetExtensions;
using System.Linq.Expressions;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

protected void Page_Load(object sender, EventArgs e)
    {
        var query1 = from mfg_nm in DataSet1.mapDataTable.AsEnumerable()

                     select mfg_nm;
}

运行它w / out AsEnumerable()导致

var query1 = from mfg_nm in DataSet1.mapDataTable

                     select mfg_nm;

CS1660:无法将lambda表达式转换为'string'类型,因为它不是委托类型

提前感谢您的帮助

6 个答案:

答案 0 :(得分:70)

method you want位于System.Data命名空间中,因此using指令很好,但您还需要引用System.Data.DataSetExtensions 程序集。您确定您是否已将该引用作为程序集参考?

目前尚不清楚为什么你有一个System.Data.DataSetExtensions 命名空间的使用指令 - 这不会引起错误吗?

AsEnumerable()电话的确切错误是什么? (我对第二种形式的错误感到惊讶......这不是我预期的错误。)

答案 1 :(得分:11)

在发生这种情况的所有情况下,都缺少对System.Data.DataSetExtensions.dll的引用。如果有疑问,请尝试创建一个针对.NET 4的简单控制台项目,并引用System.Data.DataSetExtensions.dll,以验证添加引用是否确实有效。

另请注意,您只需要使用System.Data命名空间。

BTW mapDataTable是一个DataTable,对吗?

答案 2 :(得分:6)

enter image description here我收到此错误消息: 'System.Data.DataTable'不包含'AsEnumerable'的定义,也找不到扩展方法'AsEnumerable'接受类型为'System.Data.DataTable'的第一个参数(您是否缺少using指令或程序集引用?)

已添加

using System.Data;

将“ System.Data.DataSetExtensions”添加到“引用”部分。它解决了问题。

答案 3 :(得分:2)

谷歌搜索“system.data.datatable不包含asenumerable的定义”把我带到了这里,我的麻烦不见了:

using System.Data;

由于我的实现,错误消息有点误导。因此,我对这个问题的回答。代码就像......

public List<mytype> MyMethod(params) {
   return new mynamespace.myclasslib.myclass().GetDataTable(params).AsEnumerable()
      .etc
}

一旦我尝试显式声明DataTable,很明显我错过了使用声明。

答案 4 :(得分:0)

从“ nuget ”或“ 添加引用

中添加 System.Data.DataSetExtensions

添加此代码:

using System.Data.DataSetExtensions;

答案 5 :(得分:0)

尝试此代码:

DataSet1.mapDataTable.Select().AsEnumerable()