我有这样的场景:我开发了一个C#应用程序,它通过OleDBConnection(engine = Microsoft.Jet.OLEDB.4.0)连接到mdb文件(Access 2003)。此mdb文件在同一目录中的另一个mdb文件中有一些链接表。一切都在本地环境中完美运行,即使我只连接主mdb文件,查询也会从链接表中检索数据。简化的架构可以是:
我在本地机器上的应用程序 - > C:\ mydir \ main.mdb - > C:\ MYDIR \ linked_tables.mdb
但是这个应用程序应该可以在本地网络的某些主机上运行。并且mdb文件存储在共享目录中的服务器中。好吧,当应用程序在主机中运行时,我将路径设置如下:
\\ MYSERVER \ MYDIR \ main.mdb
连接有效。当我启动尝试从链接表中获取数据的查询时,会发生此问题。它尝试在C:\ mydir \ linked_tables.mdb中查找链接表,但此路径位于服务器上,而不在主机中。
有没有办法告诉他:如果主mdb文件的路径是\\ myserver \ mydir \ main.mdb,你必须(自动)获取\\ myserver \ mydir \ linked_tables.mdb上的链表? / p>
谢谢
答案 0 :(得分:0)
我用另一个连接解决了。我的意思是:对于每个mdb文件,我使用不同的OleDBConnection。
OleDbConnection MainConn = new OleDbConnection("\\myserver\mydir\main.mdb");
OleDbConnection LinkedTablesConn = new OleDbConnection("\\myserver\mydir\linked_tables.mdb");
不太优雅,但它有效。如果我必须连接位于不同数据库中的表,我会使用一些通用集合对象来管理它们。