C#目录下的所有数据库连接

C# all database connections in a directory

我目前有一个包含很多项目文件夹的目录,每个项目文件夹都包含一个MysqlCE数据库。这些数据库都有相同的表;除了数据之外,它们是相同的。我的目标是显示根目录树中每个数据库的 _Users 表中的数据。

我对 C# 的经验有限,但我相信我可以通过一些研究来解决这个问题。但是,我会很感激任何指示 - 因为将来可以添加项目文件夹,所以我需要在每个 运行 应用程序到 "scan" 数据库(如果可能的话)。

这种动态数据库连接可以用 C# 实现吗?我可以在 dataGridView 中一起使用多个数据源吗?

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 文件中放置一些破坏其他项目的东西怎么办? 您可以为多个项目使用共享资源,但我认为(我不确定)如果您想更改您必须再次编译的值。 反正。要使用资源文件,您可以看到: How to use shared resource file between projects in one solution?

你也可以阅读这篇文章: Placing Database Connection Strings in .resx file

对于共享的 .config 文件: Common config file in a multiple-project solution?