Я пишу плагин для другой программы, которая генерирует довольно сложную древовидную структуру объектов. Пользователям нужно будет экспортировать эти данные из плагина для анализа и составления отчетов. Я определенно хочу, чтобы они могли экспортировать в базу данных MS Access, так как это было бы наиболее доступным для них для создания быстрых и чистых отчетов. Но я также хотел бы настроить все так, чтобы было легко экспортировать данные в другие источники данных (XLS, XML, SQL Server и т. Д.) Без большого количества дублирующегося кода.
Я создал рекурсивные методы, которые будут заполнять различные DataTables из древовидной структуры. Затем я могу вставить эти DataTables в DataSet . Но в этот момент я немного растерялся.
Все примеры, которые я нахожу для ADO.NET , начинаются с наличия некоторого центрального источника данных. Затем вы создаете DataConnection для данных через правильный DataProvider , используя строку подключения. После чего вы можете получить либо DataReader , либо DataSet в зависимости от того, нужно ли сохранить изменения обратно в источник.
Все же я начинаю с DataSet , и мне нужно создать источник данных из него. Есть ли какой-нибудь простой способ многократного использования, чтобы я мог создать новый DataConnection на основе какого-либо существующего пустого источника данных, а затем заполнить его моим DataSet ?
Например, я мог бы создать DataConnection для пустого файла MS Access. Тогда я мог бы использовать свои рекурсивные методы для заполнения различных DataTables в DataSet из моей древовидной структуры. Но как я мог заполнить пустую базу данных доступа с таким результатом DataSet ?
Я надеюсь на метод, который достаточно универсален, чтобы можно было легко экспортировать в разные потенциальные источники данных, просто меняя местами DataProviders и / или строки подключения.