连接来自不同数据库的表 (ADO.NET)
Join tables from different databases (ADO.NET)
我有两个数据库,每个数据库都有一个 UDL 连接字符串。我想构建一个连接来自两个数据库的表的查询。
我正在像这样从单个数据库执行查询。
string query = "...";
using (OleDbConnection connection = new OleDbConnection(ConnectionString))
using (OleDbCommand command = new OleDbCommand(query, connection))
{
int count = command.ExecuteNonQuery();
}
谁能给我举个例子,用连接两个数据库中的表的查询来做同样的事情?
您可以 select 在两个数据表中,然后使用 Linq 连接它们。
var results = from par in dt1.AsEnumerable()
join chi in dt2.AsEnumerable()
on (int)par["ID"] equals (int)chi["ParentID"]
select new //Here you can leave it that way or use your own object.
// select new MyResultObject(){prop1 = x, prop2 = y ...}
{
ParentID = (int)par["ParentID"],
ChildID = (int)par["ChildID"],
ColA = (string)par["ColA"],
ColB = (int)par["ColB"],
ColC = (double)chi["ColC"],
ColD = (date)chi["ColD"]
};
希望对您有所帮助:)
因此,让我失望的是假设我需要两个连接字符串。似乎没有任何方法可以在 ADO.NET 中构建涉及两个连接的单个查询。
就我而言,两个数据库都在同一台服务器上。所以只需要一个连接字符串。然后,查询可以包含数据库前缀以识别您指的是哪个数据库。
SELECT [DB1].[dbo].Field1, [DB2].[dbo].Field2 FROM ...
我有两个数据库,每个数据库都有一个 UDL 连接字符串。我想构建一个连接来自两个数据库的表的查询。
我正在像这样从单个数据库执行查询。
string query = "...";
using (OleDbConnection connection = new OleDbConnection(ConnectionString))
using (OleDbCommand command = new OleDbCommand(query, connection))
{
int count = command.ExecuteNonQuery();
}
谁能给我举个例子,用连接两个数据库中的表的查询来做同样的事情?
您可以 select 在两个数据表中,然后使用 Linq 连接它们。
var results = from par in dt1.AsEnumerable()
join chi in dt2.AsEnumerable()
on (int)par["ID"] equals (int)chi["ParentID"]
select new //Here you can leave it that way or use your own object.
// select new MyResultObject(){prop1 = x, prop2 = y ...}
{
ParentID = (int)par["ParentID"],
ChildID = (int)par["ChildID"],
ColA = (string)par["ColA"],
ColB = (int)par["ColB"],
ColC = (double)chi["ColC"],
ColD = (date)chi["ColD"]
};
希望对您有所帮助:)
因此,让我失望的是假设我需要两个连接字符串。似乎没有任何方法可以在 ADO.NET 中构建涉及两个连接的单个查询。
就我而言,两个数据库都在同一台服务器上。所以只需要一个连接字符串。然后,查询可以包含数据库前缀以识别您指的是哪个数据库。
SELECT [DB1].[dbo].Field1, [DB2].[dbo].Field2 FROM ...