如何使用组合框和文本框在 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;
所以,我有一个 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;