2017-02-05 5 views
0

ソースmysql dbであるデータグリッドのデータ/セルを検索するための "検索"ボタンがあります。以下のコードブロックは、列のみを検索するのに成功していますが、検索機能以外の列を追加すると、機能がうまく機能せず、ほとんど結果が得られません。大文字と小文字を区別するためのエラーもありますが、これは1つの列で問題にはなりません。データグリッドエラーのC#Winform検索値

すべての行と列を検索できるようにコードを配置するにはどうすればよいですか?

private void btnSearch_Click(object sender, EventArgs e) 
     { 
      DataView DV = new DataView(dbdataset); 
      DV.RowFilter = string.Format("Name LIKE '%{0}%'", txtSearch.Text); 
      dgvEkip.DataSource = DV; 

      // I added those columns below for search function as well but did not work well 
      /* 
      DV.RowFilter = string.Format("Telephone LIKE '%{0}%'", txtSearch.Text); 
      DV.RowFilter = string.Format("Email LIKE '%{0}%'", txtSearch.Text); 
      DV.RowFilter = string.Format("Surname LIKE '%{0}%'", txtSearch.Text); 
      DV.RowFilter = string.Format("City LIKE '%{0}%'", txtSearch.Text); 
      DV.RowFilter = string.Format("Adress LIKE '%{0}%'", txtSearch.Text); 
      */ 
     } 

ありがとう、ヌリ。

+0

あなたはORを使用しようとしましたか? https://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression.aspx – KernelMode

答えて

0

あなたはロジックでより多くの条件を入れたいOR:例えば

DV.RowFilter = string.Format("Name LIKE '%{0}%' OR Telephone LIKE '%{0}%' OR Email LIKE '%{0}%' ", txtSearch.Text); 
+0

非常にうまく動作します。ありがとうございました :) –

0

使用して、このような条件に参加する:

DV.RowFilter = string.Format("Telephone LIKE '%{0}%' AND Email LIKE '%{0}%'", txtSearch.Text, txtSearch2.Text); 
+0

ORとANDの両方がうまく機能しました。助けてくれてありがとう@McNets –