我目前有一个带有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;
答案 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中保存的查询),它似乎就像链接表一样工作。