在DataTable中,我有一个字符串列Salenumber。 我想删除介于1到100之间的数字并将其设置为""。
我不能使用这样的IF语句,但这就是我想要做的。
if (row["Salenumber"].ToString() >= 1 && row["Salenumber"].ToString() <= 100)
row.SetField("Salenumber", "");
我无法将列更改为int。也许如果有办法将其更改为int remove 1 - 100然后将其更改回来。
有没有好办法呢?
答案 0 :(得分:1)
您不需要将列更改为int,只需将单元格值转换为int以在if语句中使用
if (int.Parse(row["Salenumber"].ToString()) >= 1 && int.Parse(row["Salenumber"].ToString()) <= 100)
row.SetField("Salenumber", "");
答案 1 :(得分:1)
试试这个:
double RowDoubleValue;
foreach(DataRow row in YourDataTable)
{
if(Double.TryParse(row["Salenumber"].ToString(), out RowDoubleValue) && RowDoubleValue >= 1.0 && RowDoubleValue <= 100.0)
{
row["Salenumber"] = "";
}
}
另一种选择是将条件封装到评论中建议的Boas Enkler方法中:
foreach(DataRow row in YourDataTable)
{
if(IsANumberWithinRange(row["Salenumber"].ToString(), 1.0, 100.0))
{
row["Salenumber"] = "";
}
}
private bool IsANumberWithinRange(string InputString, double MinValue, double MaxValue)
{
double Value;
return (Double.TryParse(InputString, out RowIntValue) && RowIntValue >= MinValue && RowIntValue <= MaxValue)
}
注意:我已经从int更改为double,因为这是一个字符串列,它可能包含任何类型的数字。