44

linq を使用してデータテーブルをクエリすると、次のエラーが返されます: CS0117: 'DataSet1.map DataTable' には 'AsEnumerable' の定義が含まれていません

プロジェクトには、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;
}

AsEnumerable() なしで実行すると、

var query1 = from mfg_nm in DataSet1.mapDataTable

                     select mfg_nm;

CS1660: デリゲート型ではないため、ラムダ式を型 'string' に変換できません

あなたの助けを前もって感謝します

4

6 に答える 6

80

必要なメソッドSystem.Data名前空間にあるため、そのディレクティブは問題ありませんが、アセンブリusingへの参照も必要です。その参照をアセンブリ参照として持っています?System.Data.DataSetExtensions

System.Data.DataSetExtensions 名前空間に using ディレクティブがある理由が明確ではありません - エラーが発生しませんか?

AsEnumerable()呼び出しの正確なエラーは何ですか? (2 番目のフォームで発生するエラーに驚いています...これは私が予想していたエラーではありません。)

于 2012-02-09T19:21:00.927 に答える
16

これが発生するすべてのケースで、System.Data.DataSetExtensions.dll への参照が欠落していました。疑問がある場合は、System.Data.DataSetExtensions.dll への参照を使用して .NET 4 をターゲットとする簡単なコンソール プロジェクトを作成して、参照の追加が実際に機能することを確認してください。

また、System.Data 名前空間のみを使用する必要があることにも注意してください。

ところで mapDataTable は DataTable ですよね?

于 2012-02-09T19:27:16.787 に答える
2

Google検索「system.data.datatableにはasenumerableの定義が含まれていません」が私をここに連れてきました、そして私の問題はありませんでした:

using System.Data;

私の実装により、エラーメッセージは少し誤解を招くものでした。したがって、この質問に対する私の答え。コードは次のようでした...

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

DataTable を明示的に宣言しようとすると、using ステートメントがないことが明らかになりました。

于 2016-01-08T16:05:06.990 に答える
1

このコードを試してください:

DataSet1.mapDataTable.Select().AsEnumerable()

于 2020-07-17T07:21:14.803 に答える