0
私のコードの中には、注文の有無にかかわらず、テーブル内の製品情報をフィルタリングする2つのチェックボックスが含まれています。注文している製品はリストに保存されています。私が使用するコードは以下の通りです: - あなたは試してみて、それらをフィルタリングする際RowFilter In/Listなし<String>は行を返さないC#
// productsOnOrder is updated at the beginning of this method based off data stored on a MySQL database.
if (chkShowOrdered.CheckState == CheckState.Checked)
{
tempTable.DefaultView.RowFilter = String.Format("StockNo IN ({0})", String.Join(",", productsOnOrder));
tempTable = tempTable.DefaultView.ToTable();
}
else if (chkNotOrdered.CheckState == CheckState.Checked)
{
tempTable.DefaultView.RowFilter = String.Format("StockNo NOT IN ({0})", String.Join(",", productsOnOrder));
tempTable = tempTable.DefaultView.ToTable();
}
問題があり、製品が順番に存在していても、テーブルは常に空白です。これと同様に、注文しないでフィルタリングしようとすると、すべての製品が表示されます。値が同じ形式であることを確認するために、テーブル内とリスト内の値を大文字に変換しました。
RowFilterはどのようにして目的の結果を得られませんか?
'productsOnOrder'は' string'値の束ですか? – Corak
はいそれらはすべてリストに格納された文字列の値です –
'StockNo'を使用する必要がありますか?おそらく 'ProductNo'のようなものでしょうか?もう一つは、 'tempTable'をオーバーライドして完全に新しいオブジェクトになり、古いオブジェクトへのデータバインディングが機能しなくなります。値が数字以外の文字列であれば(引用符で囲んで)エスケープする必要があります –