【问题标题】:connecting to different databases using .net datasets使用 .net 数据集连接到不同的数据库
【发布时间】:2013-03-10 17:33:01
【问题描述】:

我有许多具有相同结构的数据库,并且我设计了一个与数据库设计相匹配的数据集。使用在设计时询问并在 app.config 中定义的 connectionStrings 很容易连接到数据库。但是当试图在运行时更改数据库时会出现问题。我找不到任何非反射解决方案来处理它。有没有其他方法可以在运行时动态更改数据集的连接字符串,或者至少创建具有不同连接字符串的数据集!!!

【问题讨论】:

    标签: c# dataset


    【解决方案1】:

    您正在使用TableAdapter 填充DataSet,您可以像这样轻松修改TableAdapter 连接字符串:

    myTableAdapter.Connection.ConnectionString = connectionString;
    

    希望这会有所帮助:)

    【讨论】:

      【解决方案2】:

      gzaxx 答案将不起作用,仅仅是因为不同的 DBMS 与不同的 ADO.NET 提供程序一起工作,这些提供程序可能彼此兼容,也可能不兼容。它背后有很多理论,我不会在这个文本框中输入所有这些,但您需要了解主要问题是 TableAdapters,而不是 DataTable。您的业​​务和 UI 层通常只与 DataTables 对话,因为您在创建表列时正确使用了相应的数据类型,所以几乎所有 DBMS 都具有相同的结构。因此,理论上,如果 Typed DataSet 可以提供一种为每个 DataTable 附加多个 Adapter 的方法,那么您可以为您支持的每个 DBMS 添加一个适配器,同时保持 DataTable 结构相同。

      我自己不得不在一个有点大的项目中处理这个问题,对我来说唯一可行的解​​决方案是将我的数据访问分离到一个单独的项目(一个类库)中,然后为我支持的每个 DBMS 创建一个这样的 DLL .希望这可以帮助您开始使用它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-10-18
        • 1970-01-01
        • 2018-02-09
        • 2017-07-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多