演练:在 Windows 应用程序中创建一个用于搜索数据的窗体

更新:2007 年 11 月

一个常见的应用程序方案是显示窗体上选择的数据。例如,您可能希望显示特定客户的订单或特定订单的详细信息。在本方案中,用户向窗体输入信息,然后以用户的输入作为参数执行查询,即基于参数化查询来选择数据。查询只返回符合用户输入的条件的数据。此演练显示如何创建返回特定城市中客户的查询,并修改用户界面,以使用户可以输入城市名称并按按钮以执行该查询。

通过让数据库执行其最擅长的工作(即快速筛选记录),使用参数化查询有助于使您的应用程序更有效。相反,如果您请求整个数据库表,在网络上传输它,然后使用应用程序逻辑查找想要的记录,则应用程序将变慢且不实用。

可以使用“选择标准生成器”对话框将参数化查询添加到任何 TableAdapter(以及接受参数值和执行查询的控件)。通过在“数据”菜单上(或任何 TableAdapter 智能标记上)选择“添加查询”命令来打开对话框。

本演练演示如下任务:

先决条件

若要完成本演练,您需要:

创建 Windows 应用程序

第一步是创建“Windows 应用程序”。在此步骤中为项目指定名称是可选的,但由于我们打算稍后保存该项目,因此为它指定了一个名称。

创建新的 Windows 应用程序项目

  1. 从“文件”菜单创建一个新的项目。

  2. 将该项目命名为 WindowsSearchForm。

  3. 选择“Windows 应用程序”,然后单击“确定”。有关更多信息,请参见创建基于 Windows 的应用程序

    “WindowsSearchForm”项目即被创建并添加到“解决方案资源管理器”中。

创建数据源

此步骤使用“数据源配置向导”从数据库创建一个数据源。您必须具有访问 Northwind 示例数据库的权限,才能创建连接。有关设置 Northwind 示例数据库的信息,请参见如何:安装示例数据库

创建数据源

  1. 在“数据”菜单上单击“显示数据源”。

  2. 在“数据源”窗口中,选择“添加新数据源”,启动“数据源配置向导”。

  3. 在“选择数据源类型”页面上选择“数据库”,然后单击“下一步”。

  4. 在“选择您的数据连接”页面上执行下列操作之一:

    • 如果下拉列表中包含到 Northwind 示例数据库的数据连接,请选择该连接。

      - 或 -

    • 选择“新建连接”,以启动“添加/修改连接”对话框。有关更多信息,请参见“添加/修改连接”对话框(通用)

  5. 如果数据库需要密码,请选择该选项以包括敏感数据,再单击“下一步”。

  6. 在“将连接字符串保存到应用程序配置文件”页面上单击“下一步”。

  7. 在“选择数据库对象”页面上展开“表”节点。

  8. 选择“Customers”表,然后单击“完成”。

    “NorthwindDataSet”即被添加到您的项目中,并且“数据源”窗口中出现“Customers”表。

创建窗体

可以通过将某些项从“数据源”窗口拖到您的窗体上来创建数据绑定控件。

在窗体上创建数据绑定控件

  1. 在“数据源”窗口中展开“Customers”节点。

  2. 将“Customers”节点从“数据源”窗口中拖到窗体上。

    窗体上出现用于导航记录的 DataGridView 和工具栏 (BindingNavigator)。组件栏中出现 NorthwindDataSetCustomersTableAdapterBindingSourceBindingNavigator

向查询添加参数化功能(搜索功能)

使用“选择标准生成器”对话框向原始查询添加一个 WHERE 子句。

创建参数化查询和用于输入参数的控件

  1. 选择 DataGridView 控件,然后在“数据”菜单上选择“添加查询”。

  2. “选择标准生成器”对话框的“新查询名称”区域中键入 FillByCity。

  3. 将 WHERE City = @City 添加到“查询文本”区域的查询中。

    查询应当类似于:

    SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax

    FROM Customers

    WHERE City = @City

    说明:

    Access 和 OleDb 数据源使用问号“?”表示参数,所以 WHERE 子句将类似于:WHERE City = ?。

  4. 单击“确定”关闭“查询标准生成器”对话框。

    “FillByCityToolStrip”即添加到窗体中。

测试应用程序

运行应用程序以打开准备接收参数作为输入的窗体。

测试应用程序

  1. 按 F5 运行应用程序。

  2. 在“City”文本框中键入“伦敦”,然后单击“FillByCity”。

    数据网格即用符合参数化条件的客户填充。在此示例中,数据网格只显示其“City”列中有“London”值的客户。

后续步骤

根据应用程序的要求,在创建参数化窗体后可能还需要执行一些步骤。您可以通过以下操作来增强此演练的效果:

请参见

概念

数据中的新增功能

“显示数据”概述

数据源概述

TableAdapter 概述

参考

BindingSource 组件概述

BindingNavigator 控件概述(Windows 窗体)

其他资源

数据演练