У меня есть приложение winforms C#, которое будет подключаться к 2 базам данных доступа. Одна из них - это база данных отчетов, в которую я не буду вносить изменения, а другая база данных - это приложение, которое будет делать обновления и т. Д. Будут нужны запросы, которые объединяют таблицы в двух базах данных. Я планирую использовать OleDBConnection, OleDBDataReader и т. Д. Для выпуска запросов. Тем не менее, я не могу понять, как программно связывать базы данных, как вы могли бы сделать через сам доступ. В мире VB6 \ ActiveX я бы использовал объект ADODX Catalog и т. Д., Чтобы создать связь между двумя базами данных доступа, позволяя мне запросить его, как если бы все таблицы из другого были в нем.Связывание двух баз данных доступа в C#
Однако, я не думаю, что использование ADODX-компонента в приложении .net - такая хорошая идея, как Microsoft заявляет, что «ADO и ADO MD не были полностью протестированы в среде Microsoft .NET Framework. Они могут вызывать периодические проблемы , особенно в приложениях, основанных на обслуживании, или в многопоточных приложениях. Методы, которые обсуждаются в этой статье, должны использоваться только как временная мера во время миграции на ADO.NET ». см. http://support.microsoft.com/kb/317881
Итак, я ищу способ сделать аналогичную вещь, но без использования старых материалов COM/ActiveX. Моя цель - написать один запрос, который может объединять таблицы в обеих базах данных.
Может кто-нибудь подумать, если это можно сделать? Могу ли я создать объект DataSet, содержащий все таблицы, и сделать это так?
Я знаком с запросами баз данных Access, DML и т. Д., Но я хочу знать, как связать две базы данных.
Заранее спасибо Jonathan
Если вы имеют дело с низким количеством данных, вы можете загрузить данные в списки/коллекции .net и присоединиться к LINQ или выражению. Или есть какая-то конкретная причина использовать JOIN? –
Привет, я вижу вашу точку зрения. В общем случае объемы данных не будут высокими, хотя в некоторых таблицах могут быть тысячи строк. Я думаю, что некоторые запросы можно сделать так, хотя мы исторически являемся магазином SQL, поэтому другие разработчики будут стонать, они не понимают ;-) –