从多个类似的未知数据库中读取
本文关键字:未知数 数据库 读取 未知 | 更新日期: 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
}
}