C# все соединения с базой данных в каталоге

В настоящее время у меня есть каталог со многими папками проекта, и каждая папка проекта содержит базу данных MysqlCE. Все эти базы данных имеют одинаковые таблицы; они идентичны, кроме данных. Моя цель - отобразить данные из таблиц _Users из каждой базы данных в дереве корневых каталогов.

У меня ограниченный опыт работы с C#, но я уверен, что справлюсь с небольшим исследованием. Тем не менее, я был бы признателен за любые указатели - поскольку папки проекта могут быть добавлены в будущем, мне понадобится приложение для "сканирования" баз данных при каждом запуске (если это вообще возможно).

Возможно ли такое динамическое соединение с базой данных в C#? Могу ли я использовать несколько источников данных вместе, скажем, в dataGridView?

2 ответа

Решение

Шаблон T4 может собрать полный путь к базам данных.

<#@ template debug="true" hostSpecific="true" #>
    <#@ output extension=".cs" #>
    <#@ Assembly Name="System.Core" #>

    <#@ import namespace="System" #>
    <#@ import namespace="System.IO" #>
    <#@ import namespace="System.Collections.Generic" #>

    <# 
    string path  = @"~\YourProjectPath";
    List<string> dbFiles = GetDBFilesRecursive(path)
    #>
    //Your class code goes here
    <#+
    public List<string> GetDBFilesRecursive(string path)
    {

        List<string> files = new List<string>();

        try
        {
            string[] fileEntries = Directory.GetFiles(path);
            foreach (string fileName in fileEntries)
                files.Add(fileName);
            string [] subdirectoryEntries = Directory.GetDirectories(path);
            foreach(string subdirectory in subdirectoryEntries)
                files.AddRange(GetDBFilesRecursive(subdirectory));
        }
        catch(Exception e)
        {
            throw new Exception("exception occured in tt gen",e );
        }
        return files;
    }
#>

Я думаю, у вас есть решение с несколькими проектами, и у каждого проекта есть файл.config, в котором размещается строка подключения. Вы можете создать общий файл.config для нескольких проектов в решении, но у него есть следующие проблемы: -config файл должен быть для каждого приложения, а что если в одном проекте вам нужно поместить что-то в файл.config, что нарушит другие проекты?, Вы можете использовать общий ресурс для нескольких проектов, но я думаю (я не уверен), если вы хотите изменить значения, вам придется снова компилировать. Тем не мение. Чтобы использовать файл ресурсов, вы можете увидеть это: Как использовать файл общих ресурсов между проектами в одном решении?

Вы также можете прочитать это: Размещение строк подключения к базе данных в файле.resx

А для общих файлов.config: общий конфигурационный файл в многопроектном решении?

Другие вопросы по тегам