查找表是一个数据表,其中包含显示来自相关表记录的数据的列。 在以下过程中, ComboBox 控件用于显示具有从父表到子表的外键关系的字段。
为了帮助可视化这两个表和此关系,下面是父表和子表的示例:
CustomersTable(父表)
客户ID | 客户姓名 |
---|---|
712 | 保罗·科赫 |
713 | 塔马拉·约翰斯顿 |
OrdersTable (子表)
订单编号 | 订单日期 | 客户ID |
---|---|---|
903 | 2004 年 2 月 12 日 | 712 |
904 | 2004 年 2 月 13 日 | 713 |
在这种情况下,一个名为 CustomersTable 的表用于存储您要显示和保存的实际信息。 但是为了节省空间,表会排除数据,以增加清晰度。 另一个表 OrdersTable 仅包含与哪个客户 ID 号等效于哪个订单日期和订单 ID 的外观相关信息。 没有提及客户的姓名。
ComboBox 控件控件上设置了四个重要属性,用于创建查阅表格。
该 DataSource 属性包含表的名称。
该 DisplayMember 属性包含要为控件文本(客户名称)显示的该表的数据列。
该 ValueMember 属性包含该表的数据列,其中包含存储的信息(父表中的 ID 号)。
该SelectedValue属性根据ValueMember提供子表的查找值。
下面的过程演示如何将窗体布局为查阅表格并将数据绑定到其上的控件。 若要成功完成这些过程,必须具有具有外键关系的父表和子表的数据源,如前所述。
创建用户界面
在 ToolBox 中,将控件 ComboBox 拖到窗体上。
此控件将显示父表中的列。
拖动其他控件以显示子表中的详细信息。 表中数据的格式应确定所选控件。 有关详细信息,请参阅按功能分类的 Windows Forms 控件。
将 BindingNavigator 控件拖到窗体上;这样就可以在子表中导航数据。
连接到数据并将其绑定到控件
ComboBox选择并单击“智能任务”字形以显示“智能任务”对话框。
选择 使用数据绑定项。
单击 “数据源 ”下拉框旁边的箭头。 如果以前为项目或窗体配置了数据源,则会显示该数据源;否则,请完成以下步骤(此示例使用 Northwind 示例数据库的 Customers 和 Orders 表,并在括号中引用它们)。
单击 添加项目数据源 以连接到数据并创建数据源。
在“数据源配置向导”欢迎页上,单击“下一步”。
在“选择数据源类型”页上选择“数据库”。
从“ 选择数据连接 ”页上可用连接列表中选择数据连接。 如果所需的数据连接不可用,请选择“ 新建连接 ”以创建新的数据连接。
单击“ 是”,保存连接 以在应用程序配置文件中保存连接字符串。
选择要引入应用程序的数据库对象。 在这种情况下,请选择具有外键关系的父表和子表(例如 Customers 和 Orders)。
如果需要,请替换默认数据集名称。
单击“完成”。
在显示成员下拉列表框中,选择要显示在组合框中的列名称(例如,ContactName)。
在“值成员”下拉列表框中,选择列(例如 CustomerID),以便在子表中执行查找操作。
在 “所选值” 下拉列表框中,导航到 项目数据源 和您刚刚创建的包含父表和子表的数据集。 选择作为父表的值成员的子表的相同属性(例如 Orders.CustomerID)。 BindingSource 相应的数据集和表适配器组件将创建并添加到窗体中。
将BindingNavigator控件绑定到子表的BindingSource(例如,
OrdersBindingSource
)。将控件以外的ComboBoxBindingNavigator控件绑定到要显示的子表BindingSource(例如)
OrdersBindingSource
中的详细信息字段。