如何:使用查询设计器设计查询

满足特定标准的查询返回数据。 有关更多信息,请参见查询:从数据源检索信息。 使用查询在屏幕上显示信息。 您也可以在您的自定义业务逻辑中使用查询的结果。

若要开始,请向项目添加查询。 有关更多信息,请参见如何:添加、删除和修改查询。 查询在查询设计器中自动打开。 在查询设计器中,通过执行以下任务设计查询:

  • 添加筛选条件。

    “筛选条件”描述结果中将包括的每个数据行必须通过的测试。

  • 在筛选条件中使用参数。

    通过键入信息或在用户界面 (UI) 上进行选择,应用程序的用户可以在运行时提供参数值。

  • 与组筛选条件一起。

    使用筛选器组确保对一组筛选条件一起进行评估,以便其作为独立于其他筛选条件的单个条件。

  • 添加排序术语。

    “排序术语” 使您能够设置由查询返回的数据行的初始排序顺序。

  • 重新排序筛选条件、筛选器组、排序术语和参数。

    您可以更改筛选条件、筛选器组、排序术语和参数在查询中的计算顺序。

添加筛选条件

筛选条件指定您想要查询返回的数据行。 例如,您可以添加仅返回位于纽约的客户的筛选条件。 筛选条件是对的搜索条件之一的传统 SQL 语句的子句中相同。 筛选器条件包含所选内容的属性、运算符、比较类型和比较值。 由布尔运算符分隔筛选条件。

下面的插图显示了筛选条件中的一部分。

查询中的筛选条件

添加筛选条件

  1. 在**“查询设计器”中,展开查询的“筛选器”**部分。

  2. 在**“筛选器”部分,单击“添加筛选器”**。

    筛选器条件被添加到**“过滤器”**部分。 几个下拉列表和一个文本框显示在筛选条件旁边。

  3. 在第一个下拉列表中,选择以下条件之一:

    • 选择**“Where”**返回符合筛选条件的其余部分的所有数据行。

    • 选择**“Where Not”**返回不符合筛选条件的其余部分的数据行。

  4. 在第二个下拉列表中,选择您想要为筛选条件使用的属性。

    例如,如果您想要查询返回特定订单日期的销售订单,那么现在属性是 OrderDate。

  5. 在第三个下拉列表中,选择您想要使用的操作符。

    例如,若要返回订单日期早于 2009 年 9 月 22 日 12:00:00 上午的销售订单,请选择**“<”**(小于)运算符。

  6. 添加比较值。 要做到这一点,单击筛选条件末尾出现的文本框旁边的按钮,然后单击下列按钮之一:

    • 单击**“文本”**键入要用作比较值的值

    • 单击**“属性”**将属性用作比较值。

      如果您选择此选项,那么文本框将成为一个下拉列表。

    • 单击**“参数”**添加参数作为比较值。

      如果您选择此选项,那么文本框将成为一个下拉列表。

    备注

    对于某些类型的字段(如 DateTime 字段),您可以单击“全局”,使用相对值,如“现在”“今天”“一周的开始”

  7. 在下拉列表或筛选器条件末尾出现的文本框中,执行以下步骤之一:

    • 如果您在上一步中选择**“文本”**,那么键入一个诸如 9/22/2009 12:00:00 AM 的值。

    • 如果您在上一步中选择**“属性”**,请选择或键入属性的名称。

    • 如果您在上一步中选择**“参数”**,请选择一个参数。

  8. 重复步骤 2-7,向查询添加您想要的任意数量的筛选条件。

您可以通过使用以下布尔运算符使一个筛选条件与其他筛选条件相关:“与”“或”“与非”“或否”

在筛选条件中使用参数

您可以添加一个参数作为筛选条件中的比较值。 您可以设计用户可以用来在运行时提供此值的屏幕。 如果您从您的自定义业务逻辑执行查询,那么您也可以提供此值作为查询方法的参数。

向查询添加参数

  1. 在**“查询设计器”中,展开“参数”**部分。

  2. 在设计器的**“参数”部分,单击“添加参数”**。

    将参数添加到**“参数”**部分。 文本框和下拉列表显示为参数的一部分。

  3. 在参数的文本框中,提供一个名称(例如,SalesTerritory)。

  4. 在参数下拉列表中,选择参数的数据类型(例如,“字符串”)。

  5. 在**“视图”菜单上,单击“属性窗口”**。

  6. 在**“属性”窗口中,单击或清除“是可选”**复选框。

    • 当参数的值为 null 时,如果您希望查询不包含使用参数的筛选条件,请选择**“是可选”**复选框。

    • 如果您希望查询始终包含使用参数的筛选条件,即使该参数的值为 null,请清除**“是可选”**复选框。 如果该参数的值为 null,那么,该 null 值将用作评估筛选条件时的比较值。

  7. 在**“查询设计器”中,展开“筛选器”**部分。

  8. 在设计器的**“筛选器”部分,指向筛选条件,单击筛选条件末尾的按钮,然后单击“参数”**。

  9. 在按钮旁的下拉列表中,选择参数。

您可以使用户在屏幕中键入或选择参数值。 例如,您可以设计一个屏幕,使用户可以通过选择销售区域查看客户名单。

或者,可以从其他列表将该参数绑定到属性。 例如,您可以设计一个屏幕,使用户能够通过选择客户查看销售订单的列表。 有关如何使用户提供屏幕上的参数值的信息,请参见 如何:向查询参数提供值

与组筛选条件一起

您可以将筛选条件组合在一起,以便将其作为一个单元进行评估。 对筛选条件分组就像将 SQL 语句中的表达式用圆括号括起来。 括号中的表达式在语句中其他的表达式之前计算。

下面的插图显示两个筛选器组。

查询中的筛选组

创建筛选器组

  1. 在**“查询设计器”中,展开“筛选器”**部分。

  2. 在设计器的**“筛选器”部分,指向“添加筛选器”,单击向下箭头,然后单击“组”**。

    筛选器组被添加到**“筛选器”**部分。 新的筛选条件被添加到筛选器组。

将筛选条件添加到筛选器组

  • 执行以下步骤之一:

    • 在筛选器组的底部,单击**“添加筛选器”**。

      备注

      “添加筛选器”按钮出现在描述筛选器组的行的末尾。

    • 从设计器的**“筛选器”**部分,向筛选器组拖动任何现有筛选条件。

将筛选器组添加到另一个筛选器组

  • 执行以下步骤之一:

    • 在筛选器组的底部,指向**“添加筛选器”,单击向下箭头,然后单击“组”**。

      备注

      “添加筛选器”按钮出现在描述筛选器组的行的末尾。

    • 从设计器的**“筛选器”**部分,向筛选器组拖动任何现有筛选条件。

    子筛选器组包括在父筛选器组中。

您可以通过使用以下布尔运算符使一个筛选器组与查询中的其他条件和组相关:“与”“或”“与非”“或否”

添加排序术语

您可以通过添加一个或多个排序术语来指定查询结果的显示顺序。 排序术语类似于传统的 SQL 语句的 ORDER BY 子句中的列。

对查询结果排序

  1. 在**“查询设计器”中,展开“排序”**部分。

  2. 在设计器的**“排序”部分,单击“添加排序”**。

    排序术语被添加到排序术语列表中。 两个下拉列表显示在排序术语旁边。

  3. 在第一个下拉列表中,选择您想要为排序术语使用的属性。 例如,若要按联系人的姓氏对其进行排序,请选择 Contact 实体的 LastName 属性。

  4. 在第二个下拉列表中,选择以下项目之一:

    1. 选择**“升序”**对结果按从最小到最大进行排序。 例如,以 A 开头的姓氏首先出现。 以 Z 开头的姓氏最后出现。

    2. 选择**“降序”**对结果按从最大到最小进行排序。 例如,以 Z 开头的姓氏首先出现。 以 A 开头的姓氏最后出现。

  5. 重复步骤 2-4,向查询添加您想要的任意数量的排序术语。

排序术语仅设置在屏幕中显示的数据行的初始排序顺序。 通过与屏幕交互,用户可以按不同的顺序查看数据行。

重新排序筛选条件、筛选器组、排序术语和参数

您可以更改筛选条件、筛选器组、排序术语和参数在查询中的计算顺序。

对筛选条件和筛选器组重新排序

  1. 在**“查询设计器”中,展开“筛选器”**部分。

  2. 在设计器的**“筛选器”**部分,将筛选条件或筛选组拖到列表中较高或较低的位置。

对排序术语重新排序

  1. 在**“查询设计器”中,展开“排序”**部分。

  2. 在设计器的**“排序”**部分,将排序术语拖到列表中较高或较低的位置。

更改排序术语的顺序会影响查询结果中数据的排序方式。 例如,假设两种排序术语,一种按 SalesTerritory 对数据进行排序,而另一种按 OrderDate 进行排序。 在此示例中,将首先按SalesTerritory排序订单。 然后,将按订单日期对每个SalesTerritory组内的订单进行排序。

重新排列参数

  1. 在**“查询设计器”中,展开“参数”**部分。

  2. 在设计器的**“参数”**部分,将参数拖到列表中较高或较低的位置。

后续步骤

若要了解如何在屏幕中使用的查询,请参阅 如何:创建 Silverlight 屏幕

若要了解如何以查询设计器以外的功能扩展查询,请参阅 如何:使用代码扩展查询

请参见

任务

如何:向查询参数提供值

如何:使用代码扩展查询

如何:使用代码从查询检索数据

如何:添加、删除和修改查询

演练:设计一个屏幕

其他资源

查询:从数据源检索信息