如何在sql数据库的两个TableAdapter之间切换

pbossiut  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(354)

我有两个完全相同的数据库,一个在本地服务器上,另一个在云中。两个连接字符串都存储在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);
        }
    }
}
mgdq6dx1

mgdq6dx11#

如果db模式相同,则不需要不同的数据集;只需在设计器中创建一个数据集。您可以更改tableadapter使用的connectionstring
(可能)在数据集设计器中单击tableadapter并将connectionmodifier设置为public(如果默认设置对您不利,因为ta代码与使用它的代码位于不同的程序集中)
更改与的连接 myTableAdapterX.Connection.ConnectionString = ... 这样,您可以将一个或多个数据集示例和一个或多个tableadapter连接到不同的数据库
如果要将数据从一个db复制到另一个db,则可以使用一个dataset示例和一个tableadapter,并使用不同的连接字符串切换connectionstring或一个dataset示例和两个ta示例。
如果同时使用两个不同的db,则可能会有两个dataset示例(以保持数据的独立性)和一个ta(并始终切换其字符串)或两个ta(具有不同的连接字符串)

相关问题