我有一个模型类,它有一个属性,与之相关的详细信息表列表。
例如,我的主表包含有关包的数据(日期,成本,数量)
详细信息表包含有关包中件数的数据(长度,数量,qte,宽度......)
我已将主表格绑定到datagridview:
dgvAssemblages.DataSource = bsAssemblage
For Each objTmp As Object In lstTmp
bsAssemblage.Add(objTmp)
Next
bsAssDet.DataSource = bsAssemblage
'bsAssDet.DataMember = "Details"
这里,bsAssemblage是主绑定源,bsAssDet是详细信息。
我不明白数据库的事情,我明白我必须在其中加入表格的名称,但只有在我输入字段的名称时它才有效...
此外,如果bindingSource为空,它会出错,所以我必须在绑定之前检查是否为空:S
所以,我已经有了详细信息网格来填充一个事件(OnEnter),但我已经看到应该可以自动绑定它...
任何人都可以帮助我解决这个问题,或许可以解释一下这个数据库应该有效:S
提前致谢!
答案 0 :(得分:0)
很好,我已经找到了如何链接网格!
问题是,我做了几件事:S
这是我的新代码:
dgvAssemblages.AutoGenerateColumns = True
dgvAssDet.AutoGenerateColumns = True
bsAssemblage.DataSource = reqTable(Of tabAssemblage_Entete)("Assemblage_Entête", intCurrentProject) 'lstTmp
dgvAssemblages.DataSource = bsAssemblage
reqAssemblageDetails(intCurrentProject, dgvAssemblages.DataSource.List) 'Loads the Details
dgvAssDet.DataSource = bsAssemblage
dgvAssDet.DataMember = "Details"
我不确定是什么让它工作得很好,我想AutoDenerateColumns就是为了这个。
另外,reqTable是nof Typed with(Of tabAss ...),所以它现在知道dataSource中的哪些字段即使是空的,也不像我第一次编写代码那样,
无论如何,现在更加干净! :)