DataTableExtensions.AsDataView<T> Method (EnumerableRowCollection<T>)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Creates and returns a LINQ-enabled DataView object representing the LINQ to DataSet query.

Namespace:   System.Data
Assembly:  System.Data.DataSetExtensions (in System.Data.DataSetExtensions.dll)

public static DataView AsDataView<T>(
	this EnumerableRowCollection<T> source
where T : DataRow


Type: System.Data.EnumerableRowCollection<T>

The source LINQ to DataSet query from which the LINQ-enabled DataView is created.

Return Value

Type: System.Data.DataView

A LINQ-enabled DataView object.

Type Parameters


The type of objects in the source sequence, typically DataRow.

DataView enables data binding scenarios for LINQ to DataSet and can be created from a LINQ to DataSet query. The DataView represents the query itself, and is not a view on top of the query. The newly created DataView infers the filtering and sorting information from the query it is created from. The DataView is then bound to a UI control, such as a DataGrid or a DataGridView, providing a simple data-binding model.

The parameter T of the input parameter source can only be of type DataRow or a type derived from DataRow.

The following query operators, only, are supported in a query used to create DataView:

For more information and examples, see Creating a DataView Object (LINQ to DataSet).

The following example creates a DataView of online orders ordered by total due:

DataTable orders = dataSet.Tables["SalesOrderHeader"];

EnumerableRowCollection<DataRow> query =
    from order in orders.AsEnumerable()
    where order.Field<bool>("OnlineOrderFlag") == true
    orderby order.Field<decimal>("TotalDue")
    select order;

DataView view = query.AsDataView();

bindingSource1.DataSource = view;

.NET Framework
Available since 3.5
Return to top