 <p>You can use <code>LIKE</code> in the <code>RowFilter</code> and concat all flters with <code>OR</code>.</p> <pre><code>var rowFilter = string.Format( "ID LIKE '%{0}%' OR TITLE LIKE '%{1}%' OR Company LIKE '%{2}%' OR UserName LIKE '%{3}%'" , txtSearchID.Text , txtSearchTitle.Text , txtSearchCompany.Text , txtSearchUserName.Text ); gridToTable.DefaultView.RowFilter = rowFilter; </code></pre> <p><a href="http://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression.aspx" rel="nofollow"><code>DataColumn.Expression Property</code></a> (same syntax for <code>DataView.RowFilter</code>)</p> <p>But to be honest, i would suggest to use <a href="http://msdn.microsoft.com/en-us/library/bb386977.aspx" rel="nofollow"><code>LINQ-to-DataSet</code></a> instead since it's much more powerful. </p> <p>For example:</p> <pre><code>DataTable tblFiltered = gridToTable.AsEnumerable() .Where(r =&gt; r.Field&lt;int&gt;("ID").ToString().Contains(txtSearchID.Text) || r.Field&lt;string&gt;("TITLE").Contains(txtSearchTitle.Text) || r.Field&lt;string&gt;("Company").Contains(txtSearchCompany.Text) || r.Field&lt;string&gt;("UserName").Contains(txtSearchUserName.Text)) .CopyToDataTable(); </code></pre>