gpt4 book ai didi

c# - 跨多个数据库的交叉引用

转载 作者:太空狗 更新时间:2023-10-29 23:28:08 27 4
gpt4 key购买 nike

我有两个数据库,一个是 MS Access 文件,另一个是 SQL Server 数据库。我需要创建一个 SELECT 命令,根据 Access 数据库中的数据从 SQL Server 数据库中过滤数据。使用 ADO.NET 实现此目的的最佳方法是什么?

我可以从每个数据库中提取所需的数据到两个新表中吗?将它们放在一个数据集中。然后在 Dataset 上执行另一个 SELECT 命令以合并数据?

附加信息:Access 数据库不是永久的。要使用的 Access 文件由用户在运行时设置。

这里有一些背景信息来解释为什么有两个数据库。我的公司使用 CAD 程序设计建筑物。该程序将 CAD 模型中使用的 Material 存储在 Access 数据库中。每个模型有一个文件。我正在编写一个程序,该程序将为每个模型生成成本核算信息。这是基于存储在 SQL Server 数据库中的当前 Material 价格。


我的解决方案

我最终只是将 Access 数据库中的数据导入到 SQL 服务器数据库中的临时表中。执行所有必要的处理,然后删除临时表。这不是一个很好的解决方案,但它确实有效。

最佳答案

如果您不必这样做,您不希望将两个数据集都拉过来。您在实现 Tomalak 的解决方案时也会遇到麻烦,因为文件位置可能会更改,甚至服务器本身可能无法随时使用。

我的猜测是您的用户设置了一个 Access 数据库,其中包含人员/产品或他们有兴趣使用的任何内容,这就是您需要在两个数据库之间进行选择的原因。如果是这种情况,Access 表可能小于 SQL Server 表。最好的办法是提取 Access 数据,然后使用它来生成对 SQL Server 的过滤查询,这样您就可以最大限度地减少通过网络发送的数据。

所以,最重要的事情是:

  1. 过滤服务器上的数据,这样您就可以最大限度地减少网络流量,而且因为数据库在过滤方面比 ADO.NET 更快
  2. 如果您必须选择一个数据集来导入您的应用程序,请导入较小的数据集,然后使用它来过滤另一个表。

关于c# - 跨多个数据库的交叉引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/240013/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com