2017-01-16 3 views
-2

私はテーブルを照会し、データを何度もフィルタリングしたいと思います。私は誰もが私が間違ってクエリをフィルタに基づいて照会linqクエリ

+0

は '何をdt'記入されていますDataRow -extension方法 - あなたが列を選択したい場合nameあなたはFieldを使用することができますか?それはあなたのコードのいくつかのコメントですか?この 'load'変数は何ですか? 'load'変数はコードスニペットで宣言されていません。 – RBT

+0

が更新しました –

答えて

0

エラーメッセージは自明ですがやっているものを私に伝えることができ、エラーに

'EnumerableRowCollection<DataRow>' does not contain a definition for 'name' and no extension method 'name' accepting a first argument of type 'EnumerableRowCollection<DataRow>' 
Where name refers to the field name in the datatable 

を得続ける次

DataTable results = new DataTable(); 

//fill dt from sql query 

var linqResult = from myRow in results.AsEnumerable() 
     select myRow; 

if (!string.IsNullOrEmpty(txtFilterName.Text)) 
{ 
    linqResult = linqResult.Where(r => linqResult.name.ToLower.Contains(txtFilterName.Text.ToLower())); 
} 

を持っています。

linqResultは、nameという特性を持たないIEnumerable<DataRow>です。

linqResult = linqResult.Where(r => r.Field<string>("name").ToLower.Contains(txtFilterName.Text.ToLower())); 
関連する問題