【问题标题】:Connecting to SQL Server, Oracle, DB2 and MySQL simultaneously using ADO.NET?使用 ADO.NET 同时连接到 SQL Server、Oracle、DB2 和 MySQL?
【发布时间】:2011-06-12 21:49:32
【问题描述】:

我对 .NET 比较陌生,但我正在尝试确定是否可以使用 ADO.NET 让单个 .NET 4 应用程序同时连接到多个供应商数据库(SQL Server、Oracle、DB2 和 MySQL)和同时执行查询?

到目前为止,我发现的所有示例都是关于一次仅连接到一个数据库的。 谢谢!

【问题讨论】:

  • 当然。为什么不可能?

标签: sql-server oracle ado.net db2


【解决方案1】:

您只需要 4 个连接字符串和 4 个单独的 ADO Connection 对象。然后,如果您真的希望它们并行运行,那么 SL​​aks 所说的异步查询可以同时执行。

【讨论】:

    【解决方案2】:

    您可以像执行一个查询一样执行两个查询。

    如果您希望它们一次执行两个查询,则需要进行异步查询或使用线程。

    【讨论】:

      【解决方案3】:

      ADO.NET 框架定义了一组抽象的“DbXXX”类,例如DbConnectionDbCommand 等,由各种数据库提供程序实现,例如

      1. 用于 Sql Server 的 System.Data.dll 中的 System.Data.SqlClient.SqlConnection'

      2. Oracle.DataAccess.dll(ODP.NET 提供程序)中用于 Oracle 的“Oracle.DataAccess.Client.OracleConnection”

      3. MySql 等的 MySql.Data.dll 中的“MySql.Data.MySqlClient.MySqlConnection”

        然后,您需要针对抽象类集设计应用程序,并在需要时使用适当的实现。大多数查询应该对所有后端都有效,但显然会有后端特定的调整,更不用说存储过程调用了。

      或者,您可以使用 ORM(实体框架、Telerik OpenAccess ORM、NHibernate 等)并将大部分差异抽象到 ORM。虽然我不确定您是否可以针对多个后端使用单个实体模型(在 EF 中)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-28
        • 1970-01-01
        • 1970-01-01
        • 2011-06-17
        相关资源
        最近更新 更多