如何使用组合框和文本框在 DataView RowFilter 中过滤整数?

How to filter Integer in DataView RowFilter using combobox and textbox?

所以,我有一个 comoboBox1 和 textBox1

comboBox1 设置为数据视图 dv 中的列名

textBox1 用于搜索

所以,我尝试了类似这样的简单代码:

dv.RowFilter = "Convert([City Number], System.String) LIKE '%2%'";

上面的代码运行良好

但后来我尝试用 comboBox1 和 textBox1 中的值替换城市编号和 %2%,

变成这样。

dv.RowFilter = "Convert([comboBox1.SelectedItem.ToString()], System.String) LIKE '%{0}%'", textBox1.Text;

语法似乎有误,但你明白我的意思。

那么如何解决这个问题?

您可以使用 string.Format 以这种方式制作过滤器表达式:

var column = comboBox1.GetItemText(comboBox1.SelectedItem);
var value = textBox1.Text;
var filter = string.Format("Convert([{0}], System.String) LIKE '%{1}%'", column, value);
dv.RowFilter = filter;