【发布时间】:2015-03-11 10:31:04
【问题描述】:
我有一个 c# winforms 应用程序,它将连接到 2 个访问数据库。一个是我不会修改的报告数据库,另一个数据库是应用程序进行更新等的地方。需要查询连接两个数据库中的表。我打算使用 OleDBConnection、OleDBDataReader 等来发出查询。但是,我无法解决如何以编程方式链接数据库,就像您可以通过 Access 本身进行的那样。 在 VB6\ActiveX 世界中,我会使用 ADODX Catalog 对象等在两个访问数据库之间创建链接,允许我查询一个数据库,就好像另一个数据库中的所有表都在其中一样。
但是,我不认为在 .net 应用程序中使用 ADODX 组件是一个好主意,正如微软所说“ADO 和 ADO MD 尚未在 Microsoft .NET Framework 环境中经过全面测试。它们可能会导致间歇性问题,尤其是在基于服务的应用程序或多线程应用程序中。本文中讨论的技术应仅用作迁移到 ADO.NET 期间的临时措施。" 请参阅http://support.microsoft.com/kb/317881
所以,我正在寻找一种做类似事情但不使用旧 COM/ActiveX 东西的方法。我的目标是能够编写一个可以连接两个数据库上的表的查询。
谁能想到有办法做到这一点?我可以创建一个包含所有表的 DataSet 对象并以某种方式这样做吗?
我熟悉查询 Access 数据库、DML 等,但我想知道如何链接这两个数据库。
提前致谢 乔纳森
【问题讨论】:
-
如果您正在处理少量数据,您可以将数据加载到 Lists/collections .net 并使用 LINQ 或表达式连接。或者有什么特别的理由要使用 JOIN?
-
嗨,我明白你的意思了。虽然有些表可能有数千行,但一般数据量不会很高。我认为一些查询可以像这样完成,尽管我们历史上是一家 SQL 商店,所以其他开发人员会抱怨他们不理解 ;-)