0

オンラインで答えを見つけようとしていますが、DataTable を使用していて、テーブルの列名に基づいてすべての行をフィルター処理したいのですが、filterExpression を機能させることができないようです。構文は間違っていますが、これは基本的に私がやりたいことです....

DataRow[] 行 = sqlDT.Select(ColumnName = "Foo", "ASC", DataViewRowState.CurrentRows);

本当にありがとう。

4

3 に答える 3

1

これを行うにはいくつかの方法があります。LINQ を使用して行をフィルター処理することをお勧めします。

sqlDT = sqlDT.AsEnumerable().Where(r => r.Field<string>("ColumnName") == "Foo").CopyToDataTable();

SelectメソッドまたはDefaultView.RowFilterプロパティを使用することもできます。

//select method
sqlDT = sqlDT.Select("ColumnName = 'Foo'").CopyToDataTable();

//row filter property
sqlDT.DefaultView.RowFilter = "ColumnName = 'Foo'";
sqlDT = sqlDT.DefaultView.ToTable();

編集

不要な列を除外するだけの場合は、次のDefaultView.ToTable()メソッドを使用します。

sqlDT = sqlDT.DefaultView.ToTable(false, "Column1", "Column2", "Column3");
于 2012-05-08T15:48:23.867 に答える
0

あなたはこのようなことを試してみるべきです

DataRow[] 行 = sqlDT.Select("ColumnName =' " + Foo + " ' " , "ASC", DataViewRowState.CurrentRows);

これがうまくいくことを願っています。

于 2012-05-08T15:53:15.543 に答える
0

あなたは間違った順序でそれをやっています.Datatable.rows(0 //その数).item( "列名"); 次にforeachでループしてリストを作成できます

于 2012-05-08T15:38:08.923 に答える