从多个类似的未知数据库中读取

本文关键字:未知数 数据库 读取 未知 | 更新日期: 2023-09-27 18:29:43

我是C#编码的新手,我的大部分经验都是在普通的旧C中。

我正在尝试用C#编写一个应用程序,它将从许多Access数据库中的一个数据库中查找信息。每个数据库的相似之处在于,它们具有相同的表(根据数据库本身命名(PIC、PICenum等))。每个数据库中的同一个表包含相同的字段名称(LnetVar、Description等)。每个数据库应用于不同的数据集,这与其他数据库不同,这就是为什么我有多个数据库而不是一个包罗万象的数据库。这也使维护变得更加容易。

我目前有一些代码可以访问一个特定的数据库,并提取出我需要的数据,以便在代码的其他地方使用。

class DB_Handler
{
    lsftTestDataSet.PICDataTable ds;
    public DB_Handler(lsftTestDataSet.PICDataTable ds)
    {
        this.ds = ds;
    }
    public string GetDescription(byte lnetVar)
    {
        foreach (lsftTestDataSet.PICRow currentRow in ds)
        {
            if (currentRow.LnetVar == lnetVar)
            {
                return currentRow.Description;
            }
        }
        return "";
    }
}

我不想做旧的复制粘贴修改技巧,这样它就可以与每个数据库交互。相反,我想要一个单独的函数来调用,以便发送我想要使用的数据库以及相关的记录和字段信息。它从中搜索数据库并返回存储的数据。

我在这里发现了一个类似的问题,但它专注于优化,而不是实际操作。我也无法按照给定的代码片段进行修改,以便与我的代码一起使用。

如果你能给我任何帮助,我们将不胜感激!

从多个类似的未知数据库中读取

正如您所说,您需要的是一个方法/函数接收一个包含要使用的连接字符串的参数。

我会这样做:-

在Web.config或App.config 中

<connectionStrings>
<add name="DbConnnectionString" connectionString="server=myserver;database={MyDatabasePlaceHolder};Integrated Security=SSPI;"
</connectionStrings>

然后在代码中(还需要添加System.Configuration.dll的引用)

using System.Configuration;
class DB_Handler
{
        string connectionString=string.Empty;
        public DB_Handler(string databaseName)
        {
           this.connectionString = ConfigurationManager.ConnectionStrings["DbConnnectionString"].ConnectionString.Replace ("{MyDatabasePlaceHolder}", databaseName)
        }
        public GetData()  
        {
          // Make use of this.connectionString to fetch data
        }
}