链接来自不同远程MS Access DB的两个表

时间:2013-10-26 13:41:12

标签: vb.net ms-access

我目前有一个带有MS Access DB的站点(.net 2.0)用于数据,在access.mdb中是来自同一站点上另一个DB的2个链接表。 - 我的所有代码都运行良好,我的所有数据库连接都指向一个数据库。我现在需要获得相同的结果,但不想在实时DB中创建链接。如何通过另一种方法获得相同的结果?

我查看了一个例子:Syntax for Import Into from Different DBs - MS Access

我的桌子很大,不认为这是最快的方式,我认为两个连接和使用表格会更好,但我愿意以正确的方式来实现这一点。

这是我的web.conf文件,其中包含与一个数据库的连接。

<connectionStrings>
<clear />
<add name="OdbcServices" connectionString="Driver={Microsoft Access Driver (*.mdb)};Dbq=e:\LeaveDB.mdb;" />
</connectionStrings>

我的最终结果我需要加入来自不同数据库的2个表:

SELECT username.table1, password.table1, fullname.table2 FROM Table1 INNER JOIN [;DATABASE=Z:\Docs\Test.mdb].Table2 ON username.table1 = username.table2;

1 个答案:

答案 0 :(得分:1)

您可以简单地创建一个指向其他数据库中的表的View,而不是创建一个“官方”链接表(TableDef对象)。我只是在C#中试过它,它似乎工作正常:

string myConnectionString;
myConnectionString =
        @"Provider=Microsoft.ACE.OLEDB.12.0;" +
        @"Data Source=C:\Users\Public\Database1.accdb;";

using (var con = new OleDbConnection())
{
    con.ConnectionString = myConnectionString;
    con.Open();

    using (var cmd = new OleDbCommand())
    {
        cmd.Connection = con;
        cmd.CommandType = System.Data.CommandType.Text;
        cmd.CommandText = 
                @"CREATE VIEW otherTable AS " +
                @"SELECT * FROM [;Database=C:\__tmp\main.accdb].otherTable";
        cmd.ExecuteNonQuery();
    }
    con.Close();
}

这会创建一个“视图”(在Access中保存的查询),它似乎就像链接表一样工作。