Member 2306433 Ответов: 2

Как извлекать данные из различных источников данных SQL, mysql и MS access


У меня есть требование, когда я должен извлекать данные из разных источников данных. У меня есть 3 источника данных SQL Server ,MySQL и доступ MS Требование состоит в том, что мне нужно определить это имя таблицы и имя столбцов в моем приложении (основная база данных SQL server 2016), и на основе этого определения моя система должна подключиться к этим источникам данных, а затем извлечь данные из указанных таблиц и вставить их в мою основную базу данных SQL . Это действие по извлечению данных будет работать в соответствии с запланированным временем. Прямо сейчас я рассматриваю возможность разработки службы windows, которая будет подключаться к источникам данных, а затем сбрасывать данные в мою основную базу данных SQL. Есть ли другой хороший способ сделать это?

Что я уже пробовал:

Искал в сети но не смог найти ответа

2 Ответов

Рейтинг:
2

F-ES Sitecore

Используйте объекты данных Oleb в ado.net как система,данные.OleDb.OleDbConnection, OleDbCommand и так далее. Это позволит вам предоставить конкретную строку подключения к базе данных для каждой из ваших баз данных и использовать один и тот же код и sql для запроса к ним, требуя изменить только строку подключения.

Google для OleDbConnection примеры кода, если вы никогда не использовали ado.net раньше.


Member 2306433

Большое спасибо. могу ли я также подключиться к MySQL ?

F-ES Sitecore

Должны сделать. Oledb-это старая технология, которая была попыткой стандартизировать доступ к данным. Это работает так, что каждый поставщик баз данных предоставляет драйвер oledb для своей базы данных, который может переводить SQL на свой язык базы данных и возвращать результаты стандартным способом. Таким образом, если вы кодируете против oledb до тех пор, пока у выбранного вами поставщика есть драйвер, ваш код будет работать. Вы даже можете получить драйверы oledb для Excel, позволяющие обрабатывать электронные таблицы excel как таблицы.

Member 2306433

Большое спасибо за быструю поддержку.

Maciej Los

Использование OleDb - это не очень хорошая идея. Каждый драйвер базы данных очень специфичен, поэтому должен существовать механизм, который может использовать определенные объекты базы данных для управления данными. Смотрите мой ответ.

F-ES Sitecore

OleDB должен заняться этими вопросами. Как я уже сказал, это способ стандартизировать доступ к данным, и существует большое разнообразие драйверов. Если вы можете жить с различными причудами oledb, это, безусловно, гораздо проще, чем писать несколько конкретных реализаций для каждой базы данных, к которой вы хотите получить доступ.

> использование OleDb-это не очень хорошая идея.
-смотрите мой ответ.

Тот, который использует oledb? ;)

Рейтинг:
1

Maciej Los

Чтобы достичь этого, вы должны написать/создать универсальный подход к доступу к данным.
Перейдите по этим ссылкам:
Написание переносимого уровня доступа к данным[^]
Упрощенный доступ к базе данных через ADO.NET интерфейсы[^]


Member 2306433

Большое спасибо.

Maciej Los

Всегда пожалуйста.