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

时间:2015-04-20 15:20:42

标签: c# sdf

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

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

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

2 个答案:

答案 0 :(得分:1)

我猜你有一个包含多个项目的解决方案,每个项目都有一个.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?

答案 1 :(得分:0)

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;
    }
#>
相关问题