2012-10-01 73 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 + "%'"; 
相關問題