【发布时间】:2015-07-10 23:20:57
【问题描述】:
如何在可视数据集中使用附加查询 (FillByQuery) 作为 bindingSource 的 dataSource/dataMember?
【问题讨论】:
标签: vb.net winforms strongly-typed-dataset
如何在可视数据集中使用附加查询 (FillByQuery) 作为 bindingSource 的 dataSource/dataMember?
【问题讨论】:
标签: vb.net winforms strongly-typed-dataset
所有附加查询都加载到数据集中完全相同的表中。每个查询可以返回大致相同的数据,但使用不同的表和参数。
dim ta 作为新的 myTableAdapter 将 md 调暗为新的 myDataSet . . . 暗淡 bs 作为新的 BindingSource bs.Datamember="myTable" bs.DataSource=myDataSet
ta.PrimaryQuery(md.myTable, parameter1, Parameter2)
ta.AlternateQuery(md.myTable, parameter3)
请注意,如果您在表单设计器中执行此操作,当您将数据源拖到表单上时,大部分操作都会为您处理。
从两个查询中加载的所有记录都直接进入数据集中的表中。您不需要对额外的查询做任何特别的事情。
【讨论】:
我正在使用表单设计器。 我在表格上有一个区域用于添加新的“票证”记录。该区域有一个组合框,仅列出活动的“位置”,并有一个插入新记录的“添加”按钮。
我有一个 dataGridView,它显示所有“票证”记录,并带有一个嵌入的“位置”组合框,以便用户可以在需要时编辑该值。此组合框使用与“添加新”“位置”组合框相同的 bindingSource。 bindingSource 使用的数据集有额外的查询来显示“位置”的完整列表或仅显示活动的“位置”。
问题在于,如果 dataGridView 试图显示一个旧的“票证”记录,其中的“位置”处于非活动状态,则所需的记录不在“位置”数据集中并导致错误。因此,我打算将 dataGridView 的“位置”组合框绑定到“位置”记录的完整列表。所以接下来我认为这将允许用户编辑记录并在不知不觉中选择非活动的“位置”。最后我的解决方案是更改原始的“位置”数据集,让记录将“(非活动)”附加到他们的描述中,这样用户就会知道这个“位置”是非活动的。我从未实现过第二个 bindingSource。
【讨论】: