使用SQL Server我运行此查询没有问题......
SELECT SUM(Esi) AS Dispo
FROM [mdb].[dbo].[Query1] AS A
INNER JOIN [mdb2].[dbo].[TieCol] as B ON A.Alias=B.IDAlias
WHERE Alias LIKE 'SETUP%'
我加入两个位于两个不同数据库(mdb
和mdb2
)的表。
但是如何在我的.NET应用程序中执行此操作? 当我需要使用这个陈述时
string cmdText = "SELECT SUM(Esi) AS Dispo
FROM [mdb].[dbo].[Query1] AS A
INNER JOIN [mdb2].[dbo].[TieCol] as B ON A.Alias=B.IDAlias
WHERE Alias LIKE 'SETUP%'";
this.OP = new SqlConnection(ConfigurationManager.ConnectionStrings["mdb2"].ConnectionString);
SqlCommand sqlCommand = new SqlCommand(cmdText, this.OP);
我无法执行它,因为this.OP
是与mdb2
的连接...而mdb
的连接是什么?
如何同时连接两个数据库?
答案 0 :(得分:3)
SQL连接到服务器 - 连接字符串中的初始目录的行为类似于use
- 它设置默认数据库。
因此,您的3部分SQL查询应该 。可能
[Alias]
mdb1
和mdb2
之间存在耦合(例如SPROCS
mdb1
使用mdb2
中的mdb1
等表格,为了便于维护,您可以考虑在mdb2
中为mdb2
对象添加视图。这样可以轻松识别跨数据库的依赖关系。在这种情况下,您的查询可以使用看起来像在同一个数据库中的视图,尽管{{1}}的基础依赖仍然存在。答案 1 :(得分:2)
我不确定是否有办法在连接字符串中执行此操作。但你可以使用表格的四部分参考来做到这一点:[server].[database].[table].[column]
。
答案 2 :(得分:0)
您的C#应用程序只需连接到一个数据库服务器即可进行此查询。 假设您的C#应用程序连接到[mdb]。数据库[mdb2]应该链接数据库[mdb]中的服务器。
由于您可以在sql server中运行该查询,因此必须有一个sql server连接到这两个数据库。在C#连接字符串中使用该sql server。就是这样!