2017-07-27 54 views
0

我想筛选我的数据表。我使用datatable.Select()进行过滤,但其中一个条件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

您需要删除'的NUMERICS。

尝试改变:

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

到:

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

感谢您的帮助 –

1

你是想用' (single quotes)传递UnitPriceString DataTable中选择。

我相信,除了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很高兴帮助。 :) –