web-dev-qa-db-ja.com

DataTableにはAsEnumerableの定義が含まれていません

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'に変換できません

ご協力ありがとうございます

38
user1169290

必要なメソッド は_System.Data_名前空間にあるため、usingディレクティブは問題ありませんが、_System.Data.DataSetExtensions_への参照も必要ですアセンブリsure参照はAssembly参照として取得していますか?

_System.Data.DataSetExtensions_のusingディレクティブを使用している理由は明らかではありませんnamespace-エラーは発生しませんか?

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

73
Jon Skeet

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

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

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

12

enter image description here このエラーメッセージが表示されました:「System.Data.DataTable」には「AsEnumerable」の定義が含まれておらず、「System.Data.DataTable」タイプの最初の引数を受け入れる拡張メソッド「AsEnumerable」が見つかりませんでしたusingディレクティブまたはアセンブリ参照がありませんか?)

追加しました

using System.Data;

「System.Data.DataSetExtensions」を参照セクションに追加しました。問題を解決しました。

9
rjose

追加System.Data.DataSetExtensions from "nuget"または "参照を追加"

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

using System.Data.DataSetExtensions;
4
codemirror

Google検索「system.data.datatableにはenenumerableの定義が含まれていません」が私をここに連れてきましたが、私のトラブルは見当たりませんでした:

using System.Data;

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

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

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

2
Adam Cox