这是我的代码......
这里我有一个TextBox。当写一些文本时自动匹配String和 找到所有的行..
现在..但是 在我的代码中...只使用“ClientName”过滤我希望搜索来自的文本 所有专栏..
如何在RowFilter中指定All The Column PLZ给我解决方案
private void txtSearch_TextChanged(object sender, EventArgs e)
{
dv.RowFilter = "ClientName Like '%" + txtSearch.Text + "%'";
dgClientMaster.DataSource = dv;
}
答案 0 :(得分:1)
试试这段代码:
private void txtSearch_TextChanged(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
foreach (DataColumn column in dv.Table.Columns)
{
sb.AppendFormat("{0} Like '%{1}%' OR ", column.ColumnName, txtSearch.Text);
}
sb.Remove(sb.Length - 3, 3);
dv.RowFilter = sb.ToString();
dgClientMaster.DataSource = dv;
}
答案 1 :(得分:1)
按照Furqan Safdar的代码,我得到了以下适合我的解决方案。
StringBuilder sb = new StringBuilder();
foreach (DataGridViewColumn column in DGridView_Main.Columns)
{
sb.AppendFormat("CONVERT({0}, System.String) LIKE '%{1}%' OR ", column.Name, TxtBx_FilterKeywordForGridView.Text);
}
sb.Remove(sb.Length - 3, 3);
(DGridView_Main.DataSource as DataTable).DefaultView.RowFilter = sb.ToString();
我希望它也能帮助其他人。
答案 2 :(得分:0)
您需要指定要搜索的列,并使用OR
子句分隔,如下所示:
dv.RowFilter = "ClientName Like '%" + txtSearch.Text + "%' OR ClientNickName Like '%" + txtSearch.Text + "%'";
此外,您需要转义单引号,否则您将遇到破解的查询或SQL注入问题。
答案 3 :(得分:0)
你可以尝试
dv.RowFilter = "Column1 + Column2 + Column3" + " Like '%" + txtSearch.Text + "%'";