2012-10-01 33 views
1

这里是我的代码...在RowFilter中,如何选择C#中的所有表列?

这里我有一个文本框。当写一些文字自动匹配字符串和 找到所有的行..

现在..但 我code..here只能过滤使用“CLIENTNAME”我想从 搜索文本的所有列..

如何指定在的RowFilter PLZ的所有列给我的解决方案

private void txtSearch_TextChanged(object sender, EventArgs e) 
    { 
     dv.RowFilter = "ClientName Like '%" + txtSearch.Text + "%'"; 
     dgClientMaster.DataSource = dv; 
    } 
+0

我看不出做一个正确的方式,但你试过来连接查询?喜欢的东西: “客户端名LIKE '%” + txtSearch.Text + “% 'AND OtherColumn LIKE' %” + txtSeach.Text + “%' AND ......” – PiLHA

回答

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; 
} 
+0

高超..........简单... cool..man thnxxxx –

0

你需要指定要搜索的列,并与OR条款分开,就像这样:

dv.RowFilter = "ClientName Like '%" + txtSearch.Text + "%' OR ClientNickName Like '%" + txtSearch.Text + "%'"; 

此外,您需要转义单引号,否则您将得到一个错误的查询或SQL注入问题。

+0

OK Thnkü的sooo多... 它的工作.. .... Thnxx很多......... –

0

您可以尝试

dv.RowFilter = "Column1 + Column2 + Column3" + " Like '%" + txtSearch.Text + "%'"; 
相关问题