How I can filter my DataTable by Column Value?

adapter, asp.net, c#, datatable, filter

Solution

Via SQL (preferred)

SELECT * FROM dbo.Table WHERE ACTIVATE = 1

Via `Linq-To-Datatable` (in memory):

DataTable tblFiltered = table.AsEnumerable()
                             .Where(r => r.Field<int>("ACTIVATE") == 1)
                             .CopyToDataTable();

If you're still on .NET 2, you can use `DataTable.Select`:

DataRow[] filteredRows = table.Select("ACTIVATE = 1");

Apart from that, you don't need `selectcommand.ExecuteReader()` to fill the table.

DataTable table = new Datatable();
using(var con = new SqlConnection(connectionString))
using(var cmd = new SqlCommand("SELECT * FROM dbo.Table WHERE ACTIVATE = 1", con))
using(var da = new SqlDataAdapter(cmd))
{
    da.Fill( table );
}

Problem

I have a question about `DataTable`. I retrieve a `DataTable` from the database, and one of these columns contains either a 1 or a 0. Now I want to retrieve only the rows with a 1 value of 1 in that column. The name of the column is `ACTIVATE`. Here is my `DataTable`: ``` DataTable table = new DataTable(TABLE); //How can I filter here so ACTIVATE == 1? adapter.Fill(table); connection.Open(); selectcommand.ExecuteReader(); return table; ```

Original source