Объединение таблиц из разных баз данных (ADO.NET) - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть две базы данных и строка подключения UDL к каждой.Я хотел бы создать запрос, объединяющий таблицы из обеих баз данных.

Я делаю запрос из одной базы данных, подобной этой.

string query = "...";

using (OleDbConnection connection = new OleDbConnection(ConnectionString))
using (OleDbCommand command = new OleDbCommand(query, connection))
{
    int count = command.ExecuteNonQuery();
}

Может кто-нибудь показать мне примерсделать то же самое с запросом, который объединяет таблицы из двух баз данных?

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Итак, меня оттолкнуло предположение, что мне понадобятся две строки подключения.Похоже, что в ADO.NET не существует способа создать один запрос, который включает два соединения.

В моем случае обе базы данных находятся на одном сервере.Таким образом, требуется только одна строка подключения.Затем запрос может включать префиксы базы данных, чтобы определить, к какой базе данных вы обращаетесь.

SELECT [DB1].[dbo].Field1, [DB2].[dbo].Field2 FROM ...
0 голосов
/ 28 сентября 2018

Вы можете выбрать оба в двух DataTables и затем присоединиться к ним, используя 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"]
                };

Надеюсь, это поможет:)

...