2017-07-27 1 views
0

私のデータテーブルをフィルタリングしたいですか?私はdatatable.Select()を使用してフィルターをかけますが、条件の1つであるUnitPriceは常にデータと一致しません。この列UnitPrice数値であり、小数点は0.1750です。どのようにdatatable.Select()フィルター数値

コードを変更するにはどうすればよいですか?ありがとう。

私が試してみてください。

var result = 
dt_Excel.Select(@" ID = '" + detailrow["Details_MasterID"].ToString() + "'" 
    + " And PatternCode = '" + detailrow["PatternCode"].ToString() + "'" 
    + " And StyleID = '" + detailrow["StyleID"].ToString() + "'" 
    + " And BrandID = '" + detailrow["BrandID"].ToString() + "'" 
    + " And SeasonID = '" + detailrow["SeasonID"].ToString() + "'" 
    + " And UnitPrice = '" +detailrow["UnitPrice"].ToString() + "'" 

もう一度試してください。

var result = 
dt_Excel.Select(@" ID = '" + detailrow["Details_MasterID"].ToString() + "'" 
    + " And PatternCode = '" + detailrow["PatternCode"].ToString() + "'" 
    + " And StyleID = '" + detailrow["StyleID"].ToString() + "'" 
    + " And BrandID = '" + detailrow["BrandID"].ToString() + "'" 
    + " And SeasonID = '" + detailrow["SeasonID"].ToString() + "'" 
    + " And UnitPrice = '" +Convert.ToDecimal(detailrow["UnitPrice"]) +"'" 
+0

@mjwills:それは、SQLではなく、インメモリコレクション 'DataTable'を照会する方法。注入ができません;-) –

+1

'Linq-To-DataTable'を使用して列を正しい型f.eにキャストしてください。 'DataRowExtension.Field'を使用します。 –

+0

'' detailrow ["PatternCode"]。ToString() 'に@TimSchmelterという一重引用符があるとどうなりますか?それは働くだろうか?そうでない場合は、それを修正するために何ができるでしょうか(おそらくhttps://stackoverflow.com/a/18535163/34092)? _Apologiesもしそれがばかな質問です._ – mjwills

答えて

1

をあなたが数値のため'を削除する必要があります。

変更してみてください:

And UnitPrice = '" +detailrow["UnitPrice"].ToString() +"'" 

に:

And UnitPrice = " +detailrow["UnitPrice"].ToString() 
+1

助けてくれてありがとう –

1

あなたが' (single quotes)を使用してDataTableの選択にStringようUnitPriceを渡すこととしました。

PatternCode以外は、PatternCodeに文字列リテラルがある場合、レコードをフィルタリングするために一重引用符は必要ありません。

は、以下のコードを試してみてください。

var result = dt_Excel.Select(@" ID = " + detailrow["Details_MasterID"] + "'" 
             + " And PatternCode = '" + detailrow["PatternCode"] + "'" 
             + " And StyleID = " + detailrow["StyleID"] 
             + " And BrandID = " + detailrow["BrandID"] 
             + " And SeasonID = " + detailrow["SeasonID"] 
             + " And UnitPrice = " + detailrow["UnitPrice"]); 
+0

助けてくれてありがとう –

+0

@VictorLin喜んで助けてくれました。 :) –

関連する問題