在RowFilter中,如何在C#中选择所有表列?
这是我的代码……
这里我有一个TextBox。 当写一些文本自动匹配String并找到所有Row ..
现在..但在我的代码中……只有使用“ClientName”的filter我希望从所有列中搜索该文本..
如何在RowFilter plz中指定All The Column给我解决方案
private void txtSearch_TextChanged(object sender, EventArgs e) { dv.RowFilter = "ClientName Like '%" + txtSearch.Text + "%'"; dgClientMaster.DataSource = dv; }
试试这段代码:
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; }
您需要指定要搜索的列,并使用OR
子句分隔,如下所示:
dv.RowFilter = "ClientName Like '%" + txtSearch.Text + "%' OR ClientNickName Like '%" + txtSearch.Text + "%'";
此外,您需要转义单引号,否则您将遇到损坏的查询或SQL注入问题。
你可以试试
dv.RowFilter = "Column1 + Column2 + Column3" + " Like '%" + txtSearch.Text + "%'";