C# 如何使用combobox和textbox筛选DataView行筛选器中的整数?

C# 如何使用combobox和textbox筛选DataView行筛选器中的整数?,c#,winforms,dataview,rowfilter,C#,Winforms,Dataview,Rowfilter,所以,我有一个combobox1和textBox1 comboBox1设置为dataview dv中的列的名称 文本框1用于搜索 因此,我尝试了以下简单代码: dv.RowFilter = "Convert([City Number], System.String) LIKE '%2%'"; 上面的代码运行良好 但后来我尝试用comboBox1和textBox1中的值替换City Number和%2% 像这样的事情 dv.RowFilter = "Convert([comboBox1.Sele

所以,我有一个combobox1和textBox1

comboBox1设置为dataview dv中的列的名称

文本框1用于搜索

因此,我尝试了以下简单代码:

dv.RowFilter = "Convert([City Number], System.String) LIKE '%2%'";
上面的代码运行良好

但后来我尝试用comboBox1和textBox1中的值替换City Number和%2%

像这样的事情

dv.RowFilter = "Convert([comboBox1.SelectedItem.ToString()], System.String) LIKE '%{0}%'", textBox1.Text;
语法似乎不对,但你知道我的意思

那么如何解决这个问题呢?

您可以使用以下方法生成过滤器表达式:

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;

谢谢你,很有魅力。这可能是我在internet上找到的唯一一个使用参数作为值的过滤器,实际上,这个代码过滤器列包含数据类型字符串、整数和日期。非常整洁,是吧?这部分
Convert([{0}],System.String)
将任何类型转换为字符串,并使搜索对用户更友好。您可以使用相同的逻辑实现对数据的简单全文搜索,该搜索将根据所有列中的搜索返回结果。这样,当用户输入一个值时,您可以在任何on列中选择包含该值的所有记录。