SelectQueryFluentBuilder Class
Provides methods that can be chained within a single statement specifying a SelectQuery.
Namespace: DevExpress.DataAccess.Sql
Assembly: DevExpress.DataAccess.v21.2.dll
NuGet Packages: DevExpress.DataAccess, DevExpress.Win.Design
Declaration
Related API Members
The following members return SelectQueryFluentBuilder objects:
Remarks
A SelectQueryFluentBuilder
instance is created by calling the static SelectQueryFluentBuilder.AddTable method.
The chain of methods must end with calling the SelectQueryFluentBuilder.Build method accepting the query name as a parameter.
In the following example, a query selects and orders records from a single data table.
using DevExpress.DataAccess.ConnectionParameters;
using DevExpress.DataAccess.Sql;
// ...
private SqlDataSource BindToData() {
// Create a data source with the required connection parameters.
Access97ConnectionParameters connectionParameters =
new Access97ConnectionParameters("../../Data/nwind.mdb", "", "");
SqlDataSource ds = new SqlDataSource(connectionParameters);
// Return a list of categories sorted by the number of products in each category.
// The chain ends with calling the Build method accepting the query name as a parameter.
SelectQuery query = SelectQueryFluentBuilder
.AddTable("Products")
.SelectColumn("CategoryID")
.GroupBy("CategoryID")
.SortBy("ProductID", AggregationType.Count, System.ComponentModel.ListSortDirection.Descending)
.Filter("[CategoryID] != 8")
.Build("MyQuery");
// Add the query to the collection and return the data source.
ds.Queries.Add(query);
return ds;
}
In the following example, a query uses an inner join to select columns from separate data tables sharing a common column key.
using DevExpress.DataAccess.ConnectionParameters;
using DevExpress.DataAccess.Sql;
using DevExpress.Xpo.DB;
// ...
private SqlDataSource BindToData() {
// Create a data source with the required connection parameters.
Access97ConnectionParameters connectionParameters =
new Access97ConnectionParameters("../../Data/nwind.mdb", "", "");
SqlDataSource ds = new SqlDataSource(connectionParameters);
// Join the Categories and Products table by the CategoryID column.
// Return the list of categories and the number of products in each category.
// Sort the categories by the number of products in them.
// The included categories must contain a specific number of products.
SelectQuery query = SelectQueryFluentBuilder
.AddTable("Categories")
.SelectColumn("CategoryName")
.GroupBy("CategoryName")
.Join("Products", "CategoryID")
.SelectColumn("ProductName", AggregationType.Count, "ProductCount")
.SortBy("ProductName", AggregationType.Count, System.ComponentModel.ListSortDirection.Descending)
.GroupFilter("[ProductCount] > 7")
.Build("MyQuery");
// Add the query to the collection and return the data source.
ds.Queries.Add(query);
return ds;
}