演练:在 Windows 应用程序中创建一个用于搜索数据的窗体
更新:2007 年 11 月
一个常见的应用程序方案是显示窗体上选择的数据。例如,您可能希望显示特定客户的订单或特定订单的详细信息。在本方案中,用户向窗体输入信息,然后以用户的输入作为参数执行查询,即基于参数化查询来选择数据。查询只返回符合用户输入的条件的数据。此演练显示如何创建返回特定城市中客户的查询,并修改用户界面,以使用户可以输入城市名称并按按钮以执行该查询。
通过让数据库执行其最擅长的工作(即快速筛选记录),使用参数化查询有助于使您的应用程序更有效。相反,如果您请求整个数据库表,在网络上传输它,然后使用应用程序逻辑查找想要的记录,则应用程序将变慢且不实用。
可以使用“选择标准生成器”对话框将参数化查询添加到任何 TableAdapter(以及接受参数值和执行查询的控件)。通过在“数据”菜单上(或任何 TableAdapter 智能标记上)选择“添加查询”命令来打开对话框。
本演练演示如下任务:
创建新的“Windows 应用程序”项目。
使用数据源配置向导在应用程序中创建和配置数据源。
在“数据源”窗口中设置项的拖放类型。有关更多信息,请参见如何:设置从“数据源”窗口中拖动时要创建的控件。
通过将项从“数据源”窗口拖动到窗体上来创建显示数据的控件。
添加用于在窗体上显示数据的控件。
完成“选择标准生成器”对话框。
将参数输入到窗体中并执行参数化查询。
先决条件
若要完成本演练,您需要:
- 对 Northwind 示例数据库的访问权。有关更多信息,请参见如何:安装示例数据库。
创建 Windows 应用程序
第一步是创建“Windows 应用程序”。在此步骤中为项目指定名称是可选的,但由于我们打算稍后保存该项目,因此为它指定了一个名称。
创建新的 Windows 应用程序项目
从“文件”菜单创建一个新的项目。
将该项目命名为 WindowsSearchForm。
选择“Windows 应用程序”,然后单击“确定”。有关更多信息,请参见创建基于 Windows 的应用程序。
“WindowsSearchForm”项目即被创建并添加到“解决方案资源管理器”中。
创建数据源
此步骤使用“数据源配置向导”从数据库创建一个数据源。您必须具有访问 Northwind 示例数据库的权限,才能创建连接。有关设置 Northwind 示例数据库的信息,请参见如何:安装示例数据库。
创建数据源
在“数据”菜单上单击“显示数据源”。
在“数据源”窗口中,选择“添加新数据源”,启动“数据源配置向导”。
在“选择数据源类型”页面上选择“数据库”,然后单击“下一步”。
在“选择您的数据连接”页面上执行下列操作之一:
如果下拉列表中包含到 Northwind 示例数据库的数据连接,请选择该连接。
- 或 -
选择“新建连接”,以启动“添加/修改连接”对话框。有关更多信息,请参见“添加/修改连接”对话框(通用)。
如果数据库需要密码,请选择该选项以包括敏感数据,再单击“下一步”。
在“将连接字符串保存到应用程序配置文件”页面上单击“下一步”。
在“选择数据库对象”页面上展开“表”节点。
选择“Customers”表,然后单击“完成”。
“NorthwindDataSet”即被添加到您的项目中,并且“数据源”窗口中出现“Customers”表。
创建窗体
可以通过将某些项从“数据源”窗口拖到您的窗体上来创建数据绑定控件。
在窗体上创建数据绑定控件
在“数据源”窗口中展开“Customers”节点。
将“Customers”节点从“数据源”窗口中拖到窗体上。
窗体上出现用于导航记录的 DataGridView 和工具栏 (BindingNavigator)。组件栏中出现 NorthwindDataSet、CustomersTableAdapter、BindingSource 和 BindingNavigator。
向查询添加参数化功能(搜索功能)
使用“选择标准生成器”对话框向原始查询添加一个 WHERE 子句。
创建参数化查询和用于输入参数的控件
选择 DataGridView 控件,然后在“数据”菜单上选择“添加查询”。
在“选择标准生成器”对话框的“新查询名称”区域中键入 FillByCity。
将 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 = ?。
单击“确定”关闭“查询标准生成器”对话框。
“FillByCityToolStrip”即添加到窗体中。
测试应用程序
运行应用程序以打开准备接收参数作为输入的窗体。
测试应用程序
按 F5 运行应用程序。
在“City”文本框中键入“伦敦”,然后单击“FillByCity”。
数据网格即用符合参数化条件的客户填充。在此示例中,数据网格只显示其“City”列中有“London”值的客户。
后续步骤
根据应用程序的要求,在创建参数化窗体后可能还需要执行一些步骤。您可以通过以下操作来增强此演练的效果:
添加显示相关数据的控件。有关更多信息,请参见如何:在 Windows 应用程序中显示相关数据。
编辑数据集来添加或移除数据库对象。有关更多信息,请参见如何:编辑数据集。
请参见
概念
参考
BindingNavigator 控件概述(Windows 窗体)