如何在c#中使用文本框过滤数据视图
本文关键字:文本 过滤 数据 视图 | 更新日期: 2023-09-27 18:05:12
我想用一个文本框来过滤一个datagridview,这个文本框包含在一个选项卡中,但它不起作用,下面是代码:
private void textBox1_TextChanged(object sender, EventArgs e)
{
try
{
((DataTable)dataGridView1.DataSource).DefaultView.RowFilter = "like '%" + textBox1.Text.Trim() + "%' ";
}
catch (Exception) { }
}
RowFilter
允许您根据列值指定过滤器。所以LIKE
适用于特定的列,而不是整行。所以你的条件应该是
"YourColumn like '%" + textBox1.Text.Trim() + "%'
另外,不要忘记TextBox可能包含'
字符,所以你需要转义它:
"YourColumn like '%" + textBox1.Text.Trim().Replace("'", "''") + "%'
,或者清洁:
string.Format("YourColumn like '%{0}%'", textBox1.Text.Trim().Replace("'", "''"));
试试这个,不管字母在哪里(开头、中间还是结尾),它都会搜索这个字母
private void TextBox1_TextChanged(object sender, EventArgs e)
{
try
{
//this code is used to search Name on the basis of TextBox1.text
((DataTable)dataGridView1.DataSource).DefaultView.RowFilter = string.Format("Column_Name like '%{0}%'", TextBox1.Text.Trim().Replace("'", "''"));
}
catch (Exception)
{
}
}
这个从第一个字母开始搜索,然后一个接一个地跟着下一个。
try
{
((DataTable)dataGridViewX1.DataSource).DefaultView.RowFilter = "Column_Name like'" + textBox1.Text.Trim().Replace("'", "''") + "%'";
}
catch (Exception)
{
}