If in your project you want to include only certain rows in the display you can use a DataView to apply custom filtering. To accomplish this, you should use the RowFilter property which acts like a WHERE clause in a SQL query. You can limit the final results by using it and by applying logical operators, described in the next table:
Operator | Description |
<, >, <=, and >= | Performs comparison of more than one value. These comparisons can be numeric (with number data types) or alphabetic dictionary comparisons (with string data types). |
<> and = | Performs equality testing. |
NOT | Reverses an expression. Can be used in conjunction with any other clause. |
BETWEEN | Specifies an inclusive range. For example, “Units BETWEEN 5 AND 15” selects rows that have a value in the Units column from 5 to 15. |
IS NULL | Tests the column for a null value. |
IN(a,b,c) | A short form for using an OR clause with the same field. Tests for equality between a column and the specified values (a, b, and c). |
LIKE | Performs pattern matching with string data types. |
+ | Adds two numeric values or concatenates a string. |
– | Subtracts one numeric value from another. |
* | Multiplies two numeric values. |
/ | Divides one numeric value by another. |
% | Finds the modulus (the remainder after one number is divided by another). |
AND | Combines more than one clause. Records must match all criteria to be displayed. |
OR | Combines more than one clause. Records must match at least one of the filter expressions to be displayed. |
The next example page includes three GridView controls. Each one is bound to the same DataTable but with different filter settings:
// Step 1. Retrieve the data into a DataSet // Create the Connection, DataAdapter, and DataSet.string connectionString = WebConfigurationManager.ConnectionStrings[“SomeCompany”].ConnectionString;SqlConnection con = new SqlConnection(connectionString);string sql = “SELECT ProductID, ProductName, UnitsInStock, UnitsOnOrder, Discontinued FROM Products”;SqlDataAdapter da = new SqlDataAdapter(sql, con);DataSet ds = new DataSet(); da.Fill(ds, “Products”); //Step 2. Filter each DataView for different criterion // Filter for the Computer productDataView view1 = new DataView(ds.Tables[“Products”]);view1.RowFilter = “ProductName = ‘Computer'”;grid1.DataSource = view1; // Filter for products that aren’t on order or in stock.DataView view2 = new DataView(ds.Tables[“Products”]);view2.RowFilter = “UnitsInStock = 0 AND UnitsOnOrder = 0”;grid2.DataSource = view2; // Filter for products starting with the letter K.DataView view3 = new DataView(ds.Tables[“Products”]);view3.RowFilter = “ProductName LIKE ‘K%'”;grid3.DataSource = view3; //Step 3. Copy the values form the DataTable into control separately or for entire page by calling Page.DataBind().Page.DataBind();