オンラインで答えを見つけようとしていますが、DataTable を使用していて、テーブルの列名に基づいてすべての行をフィルター処理したいのですが、filterExpression を機能させることができないようです。構文は間違っていますが、これは基本的に私がやりたいことです....
DataRow[] 行 = sqlDT.Select(ColumnName = "Foo", "ASC", DataViewRowState.CurrentRows);
本当にありがとう。
オンラインで答えを見つけようとしていますが、DataTable を使用していて、テーブルの列名に基づいてすべての行をフィルター処理したいのですが、filterExpression を機能させることができないようです。構文は間違っていますが、これは基本的に私がやりたいことです....
DataRow[] 行 = sqlDT.Select(ColumnName = "Foo", "ASC", DataViewRowState.CurrentRows);
本当にありがとう。
これを行うにはいくつかの方法があります。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");
あなたはこのようなことを試してみるべきです
DataRow[] 行 = sqlDT.Select("ColumnName =' " + Foo + " ' " , "ASC", DataViewRowState.CurrentRows);
これがうまくいくことを願っています。
あなたは間違った順序でそれをやっています.Datatable.rows(0 //その数).item( "列名"); 次にforeachでループしてリストを作成できます