DataTable不包含AsEnumerable的定义

use*_*290 38 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;
}
Run Code Online (Sandbox Code Playgroud)

运行它w/out AsEnumerable()导致

var query1 = from mfg_nm in DataSet1.mapDataTable

                     select mfg_nm;
Run Code Online (Sandbox Code Playgroud)

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

在此先感谢您的帮助

Jon*_*eet 73

您想要方法是在System.Data命名空间中,因此该using指令很好,但您还需要对System.Data.DataSetExtensions 程序集的引用.你确定你有这个参考作为装配参考吗?

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

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

  • @ user1169290:你能不能只在引用下添加它?我不知道在web.config下是否有所作为... (2认同)

Pan*_*vos 12

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

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

BTW mapDataTable是一个DataTable,对吧?


rjo*_*ose 10

在此处输入图片说明我收到此错误消息:'System.Data.DataTable'不包含'AsEnumerable'的定义,并且找不到扩展方法'AsEnumerable'接受类型为'System.Data.DataTable'的第一个参数(您是否缺少使用指令还是程序集引用?)

添加

using System.Data;
Run Code Online (Sandbox Code Playgroud)

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


cod*_*ror 8

从“ nuget ”或“ 添加引用 ” 添加System.Data.DataSetExtensions

添加此代码:

using System.Data.DataSetExtensions;
Run Code Online (Sandbox Code Playgroud)