我试图找出使用 .NET 数据集的正确方法。您是否应该为数据库中的每个表创建一个 DataTable 并在 DataSet 中创建关系?在 DataSet 中重建整个数据库结构对我来说似乎很疯狂。
我将使用我的数据库的简化示例。假设我有一张CompanyEquipment
桌子。每台设备都属于一个成本中心,成本中心数据存储在CostCenter
表中,并与CompanyEquipment
表相关联。假设我有一个存储过程,它返回CompanyEquipment
已与CostCenter
表连接的数据,以在一个查询中返回所有信息。我可以使用存储过程来填充DataTable
,但是如何将这个非规范化的结果表保存回数据库?我不知道这是否是一个好方法。无论如何,我认为查询使用关联(桥)表的多对多关系需要多个查询。例如,我有一个EquipmentRole
存储不同设备使用情况的表,以及一个EquipmentRoleAssignment
可以将多个角色分配给设备的表格。
或者,如果我有模仿数据库的 DataTables,我将不得不在每个表上使用 DataAdapter.Fill() 分别查询每个表,以将相关数据放入每个DataTable
. 所以我会有类似的东西select * from CompanyEquipment where equipID = 1234
,我会用一个适配器来填充一个CompanyEquipment DataTable
,然后我将不得不使用另一个查询select * from CostCenter where costCenterID = <costcenterID from the companyequipment record>
并填充CostCenter DataTable
. 使用这种方法,我必须访问数据库两次,并且我失去了 DBMS 执行连接的能力。
我是数据驱动应用程序的新手,所以我不熟悉工作流程;特别是我应该访问数据库多少次才能获得一种数据表示。任何帮助表示赞赏。我在 C# 中工作。