Back to Devexpress

QueryParameter Class

corelibraries-devexpress-dot-dataaccess-dot-sql-73719794.md

latest6.7 KB
Original Source

QueryParameter Class

A parameter passed to a SqlQuery.

Namespace : DevExpress.DataAccess.Sql

Assembly : DevExpress.DataAccess.v25.2.dll

NuGet Package : DevExpress.DataAccess

Declaration

csharp
public sealed class QueryParameter :
    DataSourceParameterBase
vb
Public NotInheritable Class QueryParameter
    Inherits DataSourceParameterBase

Remarks

A collection of QueryParameter objects is returned by the SqlQuery.Parameters property. This property is also available for the StoredProcQuery class.

The following code retrieves data from the Microsoft SQL Server database and filters the resulting data set with a specified parameter value.

csharp
using DevExpress.DataAccess.ConnectionParameters;
using DevExpress.DataAccess.Sql;
// ...
SqlDataSource DataSource { get; set; }
// ...
void SqlDataSourceInitialization()
{
    MsSqlConnectionParameters connectionParameters = new MsSqlConnectionParameters(){
        ServerName = "localhost",
        DatabaseName = "NorthWind",
        UserName = null,
        Password = null,
        AuthorizationType = MsSqlAuthorizationType.Windows
    };
    DataSource = new SqlDataSource(connectionParameters);
}
// ...
void SelectQueryCreation()
{
    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("Categories");
    DataSource.Queries.Add(query);

    QueryParameterInitialization(query);
}
// ...
void QueryParameterInitialization(SelectQuery query)
{
    QueryParameter parameter = new QueryParameter()
    {
        Name = "catID",
        Type = typeof(DevExpress.DataAccess.Expression),
        Value = new DevExpress.DataAccess.Expression("?catID", typeof(System.Int32))
    };
    query.Parameters.Add(parameter);
    query.FilterString = "CategoryID = ?catID";
}
vb
Imports DevExpress.DataAccess.ConnectionParameters
Imports DevExpress.DataAccess.Sql
' ...
Private Property DataSource() As SqlDataSource
' ...
Private Sub SqlDataSourceInitialization()
    Dim connectionParameters As New MsSqlConnectionParameters() With
        {
        .ServerName = "localhost",
        .DatabaseName = "NorthWind",
        .UserName = Nothing,
        .Password = Nothing,
        .AuthorizationType = MsSqlAuthorizationType.Windows
    }
    DataSource = New SqlDataSource(connectionParameters)
End Sub
' ...
Private Sub SelectQueryCreation()
    Dim query As SelectQuery = 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("Categories")
    DataSource.Queries.Add(query)

    QueryParameterInitialization(query)
End Sub
' ...
Private Sub QueryParameterInitialization(ByVal query As SelectQuery)
    Dim parameter As New QueryParameter() With {
        .Name = "catID",
        .Type = GetType(DevExpress.DataAccess.Expression),
        .Value = New DevExpress.DataAccess.Expression("?catID", GetType(System.Int32))}
    query.Parameters.Add(parameter)
    query.FilterString = "CategoryID = ?catID"
End Sub

You can use expressions to specify the query parameter value. Set the parameter’s Type property to the DevExpress.DataAccess.Expression type and assign an Expression instance to the parameter’s Value property. For more information on operators, functions, and constants, refer to the following help topic: Expression Language. In DevExpress reports, expressions can include report parameters. Prepend a report parameter’s name with the ? character in an expression to bind a query parameter to a report parameter.

Review the following examples on how to use the Expression to link query parameters with the report or dashboard parameters:

Implements

IParameter

IFilterParameter

Inheritance

Object DataSourceParameterBase QueryParameter

See Also

QueryParameter Members

Use Query Parameters

Parameters Panel

DevExpress.DataAccess.Sql Namespace