Как предложил Серкан в своем комментарии, я бы хотел использовать SSIS (службы интеграции SQL Server) для этой задачи, особенно если вы уже используете SQL Server, а SSIS создан именно для этой задачи.
SSIS очень гибок (как и большинство пакетов ETL), и вы можете добавить собственную логику для преобразования данных (если есть)
Кроме того, если вы создаете задание на сервере SQL, вы можете запланировать эту задачу, и это задание выполнит пакет служб SSIS, который подключается к базе данных MS Access, и автоматически использует его в качестве источника данных.
Более того, у вас есть возможность вызывать пакет служб SSIS непосредственно из кода C # (если по какой-то причине у вас есть требование не использовать запланированные задания, но необходимо предоставить какой-то интерфейс для пользователей, чтобы запустить задачу), используя DTExec.exe
или используя классы, выставленные через Microsoft.SQLServer.ManagedDTS.dll.
См. Эту ссылку , чтобы узнать, как вызвать пакет служб SSIS непосредственно из кода C #