VisualBasic中DataCombo和DataList控件的使用

VisualBasic中DataCombo和DataList控件的使用,第1张

VisualBasic中DataCombo和DataList控件的使用,第2张

使用DataCombo和DataList控件

DataCombo和DataList控件与标准的列表框和组合框控件非常相似,但也有一些重要的区别,这使得这两个控件在数据库应用程序中非常适用和有用。这两个控件都可以由这些控件所绑定到的数据库字段自动填充。此外,它们可以有选择地将选定的字段传递给第二个数据控件,因此它们适用于创建“查找表”应用程序。
可能的用法
1。在关系数据库中,一个表的数据用于提供要输入到第二个(相关)表的值。例如,在库存数据库中,供应商的名称存储在一个表中,每个供应商都有一个唯一的标识符。另一个显示产品的表使用这些标识符来指示哪个供应商提供了产品。您可以使用DataList控件显示供应商的名称,并(不可见地)向产品表提供供应商的标识符。
2。允许用户通过从下拉列表中选择标准来缩小搜索范围。例如,销售报表的数据库应用程序可以使用DataList控件让用户选择一个州或一个销售区域。一旦做出选择,选择项将自动转移到第二个数据控件,第二个数据控件负责查找所选区域的销售记录。
与其对应的内部控件一样,DataList和DataCombo控件之间的主要区别在于DataCombo控件提供了一个文本框,您可以在其中编辑内容。
有关DataList和DataCombo控件连接数据库表的能力的详细信息,请参考“使用DataCombo和DataList控件连接两个表”。要使用链接表创建简单的数据库应用程序,请参见“创建简单的DataCombo应用程序”。

值得注意的控件属性
Datalist和DataCombo控件的一些重要属性包括:

请注意,DataCombo控件的DataFormat属性是一个扩展程序属性。因此它在属性表上总是可见的,并且可以在代码中设置。但是,DataCombo控件仅格式化其列表中的顶部项目。对于看到格式化顶部项目的最终用户来说,这可能并不重要,只要他从未格式化的列表中进行选择。格式化的项目还可能误导最终用户,使他们认为在将项目输入数据库之前需要对其进行格式化。由于这些原因,建议在使用DataCombo控件时不要设置DataFormat属性。
有关详细信息,如果您想使用演示BoundText属性用法的分步教程,请参考“创建连接到DataList控件的DataGrid”。有关这些控件的属性和方法的完整列表,请参见DataList控件和DataCombo控件。

使用DataCombo和DataList控件连接两个表
data combo和DataList控件的独特功能是能够访问两个不同的表,并将第一个表的数据链接到第二个表的字段。这是通过使用两个数据源(如ADO数据控件或数据环境)来完成的。

关系表和“不友好”的值
在关系数据库中,并不是所有重用信息的信息都存储在很多地方。这些信息的大部分保存在由多个字段组成的记录集中;在这些字段中,有一个“标识符”字段可以清楚地标识该记录集。例如,VisualBasic提供的Biblio数据库在一个名为“Publishers”的表中存储了几家出版公司的名称。该表包括许多字段,如地址、城市、邮政编码和电话号码。但是为了简单起见,只考虑这个表的两个基本字段,Name和PubID。Name字段存储发行商的名称,而PubID字段存储相对“不友好”的值,如数字或代码。但是这个不友好的值非常重要,因为它清楚地标识了发布者,并且可以作为链接整个记录集的手段。此外,该值存储在第二个表的多个记录集中。
第二个表的名称是“Titles”,每个记录集中包含的信息包括书名、出版年份、ISBN等。其中一个字段的名称是“PubID”。该字段的名称与Publishers表中相应字段的名称相同,因为该字段存储将标题与特定出版商关联的值。
这个可行的方案引发了一个小问题:给定一个允许用户插入新图书的数据库应用程序,用户必须以某种方式输入一个整数来标识出版商。如果用户能记住每个发布者的标识符,还是可行的,但是如果用户一方面能看到发布者的名字,另一方面能看到数据库中存储的对应值,那就更方便了。DataList和DataCombo控件可以轻松解决这个问题。

两个数据源,三个字段,未编码
DataList和DataCombo控件用两个数据源来解决这个问题。虽然只显示出版商的名称(来自Publishers表),但DataList或DataCombo控件只将PubID字段的值写入Titles表。通过“属性”窗口,将RowSource设置为提供要写入的数据的数据源(即Publishers表)。然后将DataSource属性设置为要写入数据的数据源(即标题表)。最后,设置DataField、ListField和BoundColumn属性。下图演示了如何将两个数据源(以两个数据控件的形式)和三个字段分配给DataCombo控件:

简而言之,ListField属性确定控件显示哪个字段。在这种情况下,是发行者的名称。另一方面,BoundColumn属性确定Publishers表中的哪个字段向Title表提供实际所需的值。请注意,不能(也不应该)编辑Publishers表中的PubID字段。相反,PubID字段中的值将被写入DataField属性指定的字段。在这个例子中,这个属性是Titles表中的PubID字段。
下表概述了这些属性以及如何使用它们。

注意,DataList和DataCombo控件也可以与单个数据控件一起使用。为此,可以将DataSource和RowSource属性设置为同一数据控件,并将DataField和BoundColumn属性设置为数据控件记录集中的同一字段。在这种情况下,ListField的值将用于填充列表,这些值来自被更新的同一个记录集。如果指定了ListField属性,但未设置BoundColumn属性,则BoundColumn将自动设置为ListField字段。
有关详细信息,如果您想使用DataCombo控件一步步创建一个简单的数据库应用程序,请参考“创建一个简单的DataCombo应用程序”。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » VisualBasic中DataCombo和DataList控件的使用

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情