我有两个完全相同的数据库,一个在本地服务器上,另一个在云中。两个连接字符串都存储在app.config中。对于这两个数据库,我都在visualstudio中创建了一个数据集及其适配器。客户机应该能够在运行时通过参数选择他应该使用哪个tableadapter。我想处理来自同一类中两个数据库的数据(相同的结构和数据),因此需要在两个数据库之间进行切换 Test.TestSetTableAdapter
以及 Test.TestSet1TableAdpater
. 此外,对象 TestSet DataSet1
还应与所需类型匹配。
如何在运行时更改对这些适配器的命名空间的引用?还是有更好的方法处理这个问题?
前任:
namespace Test.TestSetTableAdapter
{
partial class valueTableAdapter
{
...
}
}
namespace Test.TestSet1TableAdapter
{
partial class valueTableAdapter
{
...
}
}
namespace Test
{
class database
{
private static TestSet DataSet1;
public Test()
{
DataSet1 = new DataSet1();
}
public string[,] getValues()
{
TestSetTableAdapter.valueTableAdapter value = new TestSetTableAdapter.valueTableAdapter();
value.FillBy(DataSet1.value);
}
}
}
1条答案
按热度按时间mgdq6dx11#
如果db模式相同,则不需要不同的数据集;只需在设计器中创建一个数据集。您可以更改tableadapter使用的connectionstring
(可能)在数据集设计器中单击tableadapter并将connectionmodifier设置为public(如果默认设置对您不利,因为ta代码与使用它的代码位于不同的程序集中)
更改与的连接
myTableAdapterX.Connection.ConnectionString = ...
这样,您可以将一个或多个数据集示例和一个或多个tableadapter连接到不同的数据库如果要将数据从一个db复制到另一个db,则可以使用一个dataset示例和一个tableadapter,并使用不同的连接字符串切换connectionstring或一个dataset示例和两个ta示例。
如果同时使用两个不同的db,则可能会有两个dataset示例(以保持数据的独立性)和一个ta(并始终切换其字符串)或两个ta(具有不同的连接字符串)