Oledb和Access。应该使用Inner Join还是C#循环?

时间:2017-02-13 01:31:36

标签: c# sql ms-access oledb

我重新启动了旧项目的工作。它是一个包含6个表的访问数据库。其中一个是主表TableA。这就是它的运作方式。

TableA具有TableB,TableC和TableD的一对多。

TableD与TableE有一对多。

TableE与TableF有一对多。

在任何时候我只需要来自tableA的1条记录,但总是需要表B,C,D,E和F中的相关记录。

我可以对表B和C进行单独的Select调用,但表D的关系很有趣。对于表A中的每个记录,表D将具有4到5个记录。对于表D中的每条记录,表E将具有4到5条记录。对于表E中的每条记录,表F可能有超过100条记录。

我最终需要向最终用户展示:表A,B,C和D中的信息表E中的信息必须按表D分组(I' m使用组合框),表F中的信息必须按表E(也是组合框)分组,然后分成4组中的1组。

目前我有一个数据库接口类,它可以进行所有数据库调用并返回一个Binding列表。我最近开发了一个SQL查询,它在TableD,TableE和TableF上执行内连接,并且认为我会遍历返回的记录,仔细创建我的6个单独的BindingList。

我的问题:如何更好地完成这项工作,同时避免过多的数据库命中?假设内连接比4个单独的DB调用更好,我错了吗?

1 个答案:

答案 0 :(得分:0)

这不是你应该担心的数据库命中数。首先担心使用正确的工具来完成工作。关联数据库在加入时非常复杂。最大限度地使用它。 Crazy是在数据库之外进行连接的唯一单词。

如果使用QueryFirst(免责声明:我写的),编写SQL以加入5个表会更有趣