演练:在 Windows 窗体应用程序中创建查找表
查找表用于根据一个表的外键字段的值显示另一个表中的信息。 例如,请考虑销售数据库中的 Orders 表。 Orders 表中的每个记录都包括指示下订单的客户的 CustomerID。 而 CustomerID 是一个指向 Customers 表中的客户记录的外键。 当呈现订单列表(从 Orders 表中)时,您可能希望显示实际的客户名而不是 CustomerID。 由于客户名在 Customers 表中,而正在呈现的是 Orders 表中的数据,所以需要创建一个查找表,此查找表获取 Orders 记录中的 CustomerID 值,然后使用该值定位关系,并返回可读性更强的客户名。 这个概念称为查找表。
本演练涉及以下任务:
创建新的**“Windows 应用程序”**项目。
使用 数据源配置向导 创建并配置数据集。
选择从**“数据源”**窗口拖动某些项时要在窗体上创建的控件。 有关更多信息,请参见 如何:设置从“数据源”窗口中拖动时要创建的控件。
通过将项从**“数据源”**窗口拖动到窗体上来创建数据绑定控件。
将一个相关表拖动到通过外键关系绑定的控件上,从而设置一个查找表。
系统必备
若要完成本演练,您需要:
- 对 Northwind 示例数据库的访问权。 有关更多信息,请参见 如何:安装示例数据库。
创建新的 Windows 应用程序
创建新的 Windows 应用程序项目
从**“文件”**菜单创建一个新的项目。
将项目命名为 LookupTableWalkthrough。
选择**“Windows 应用程序”,然后单击“确定”**。 有关更多信息,请参见 创建基于 Windows 的应用程序。
LookupTableWalkthrough 项目即被创建并添加到**“解决方案资源管理器”**中。
创建新的数据源
创建数据源
在**“数据”菜单上,单击“显示数据源”**。
在**“数据源”窗口中,选择“添加新数据源”,启动“数据源配置向导”**。
在**“选择数据源类型”页上选择“数据库”,然后单击“下一步”**。
在**“选择您的数据连接”**页面上执行下列操作之一:
如果下拉列表中包含到 Northwind 示例数据库的数据连接,请选择该连接。
- 或 -
选择**“新建连接”,以启动“添加/修改连接”**对话框。 有关更多信息,请参见 “添加/修改连接”对话框(通用)。
如果数据库需要密码,请选择该选项以包括敏感数据,再单击**“下一步”**。
在**“将连接字符串保存到应用程序配置文件”页面上单击“下一步”**。
在**“选择数据库对象”页面上展开“表”**节点。
选择**“Customers”和“Orders”表,然后单击“完成”**。
NorthwindDataSet 被添加到您的项目,这两个表将出现在**“数据源”**窗口中。
在窗体上创建数据绑定控件
在窗体上创建数据绑定控件
在**“数据源”窗口中展开“Customers”**节点。
通过从**“Orders”节点上的控件列表中选择“详细信息”,将相关“Orders”表的拖放类型更改为“详细信息”**。 有关更多信息,请参见 如何:设置从“数据源”窗口中拖动时要创建的控件。
展开相关的**“Orders”节点,并通过从“CustomerID”节点上的控件列表选择“ComboBox”来将“CustomerID”**列的拖放类型更改为组合框。
将相关的**“Orders”节点从“数据源”窗口拖动到“Form1”**上。
带有描述性标签的数据绑定控件会出现在窗体上,同时还显示一个工具条 (BindingNavigator),用于在记录间进行导航。 组件栏中出现 NorthwindDataSet、CustomersTableAdapter、BindingSource 和 BindingNavigator。
创建查找表
通过在 CustomerID 组合框上设置属性来创建查找表:
在窗体上创建查找表功能
将主 Customers 节点从**“数据源”窗口直接拖动到“Form1”上的“CustomerID”**组合框上。
提示
下表仅供参考,这些属性在上述过程中的拖放动作期间会被自动设置。 设计器按照下面的“设置说明”所述来设置以下属性。 根据表的结构,您可能需要对属性进行调整以使查找表正常工作。
Property
设置说明
DataSource
Visual Studio 将此属性设置为您拖到控件上的表所创建的 BindingSource(相对于创建该控件时所创建的 BindingSource)。
如果您需要进行调整,那么请将此属性设置为带有您要显示的列的表的 BindingSource。 (对于本演练为 CustomersBindingSource。)
DisplayMember
对于您拖动到控件上的表,则 Visual Studio 将此属性设置为该主键后的具有字符串数据类型的第一列。
如果您需要进行调整,那么可以将此属性设置为希望显示的列名称。
ValueMember
Visual Studio 将此属性设置为参与主键的第一列,或表中的第一列(如果未定义任何键)。
如果您需要进行调整,请将此属性设置为包含希望显示的列的表中的主键。
SelectedValue
Visual Studio 将此属性设置为自“数据源”窗口拖放的原始列。
如果您需要进行调整,那么可以将此属性设置为相关表中的外键列。 (对于本演练为 Orders 表中的 CustomerID。)
运行应用程序
运行应用程序
按 F5。
在订单中导航,确保**“CustomerID”**组合框为每个订单显示了来自 Customers 表的 CompanyName(而不是 Orders 表中的 CustomerID 列)。
后续步骤
根据应用程序的要求,创建数据绑定窗体后,还需要执行一些步骤。 您可以通过以下操作来增强此演练的效果:
在窗体上添加搜索功能。 有关更多信息,请参见 如何:向 Windows 窗体应用程序中添加参数化查询。
添加将更新发送回数据库的功能。 有关更多信息,请参见 演练:将数据保存到数据库(单个表)。
通过从**“数据源”窗口中选择“使用向导配置数据集”,将 Orders 表添加到数据集中。 然后,通过将相关 Orders 节点(位于“Customers”表中“Fax”**列下面)拖到窗体上,来添加显示相关数据的控件。 有关更多信息,请参见 如何:在 Windows 窗体应用程序中显示相关数据。
请参见
概念
在 Visual Studio 中将 Windows 窗体控件绑定到数据