正在筛选数据表编号列

本文关键字:编号 数据表 筛选 | 更新日期: 2023-09-27 18:29:33

我想通过包含数字数据的列来过滤数据表,我正在尝试以下操作:

string selected = colSelect.GetItemText(colSelect.SelectedItem);
if (filterText.Text.Length == 0) 
{
     data_table.DefaultView.RowFilter = string.Empty;
}
else
{
     data_table.DefaultView.RowFilter = string.Format("Price Like '%{0}%'", filterText.Text);

我试着将第二个值转换为字符串,但没有成功,我得到了错误:

无法对System.Decimal和System.String 执行"Like"操作

输入的数据可以是任何数字或文本,但根据数据,只有相关的数值才会显示在过滤器中。

正在筛选数据表编号列

看起来Price列是decimal类型的,但您提供了一个string,即filterText.Text来过滤它。

一种解决方案可能是使用CCD_ 5,CCD_;

data_table.DefaultView.RowFilter = "CONVERT(Price, 'System.String') like '%" + filterText.Text + "%'";

我没有尝试过这个,但你可以将你的filterText.Text解析为decimal(如果它是有效的),并像这样使用它;

data_table.DefaultView.RowFilter = "Price Like '%" + decimal.Parse(filterText.Text) + "%'";

但正如我所说,我不能百分之百肯定第二个。