1

尽管我开发了许多处理多个数据库平台的实用软件,但我对数据库连接的基础知识仍然知之甚少。

我目前正在开发一个 WPF 应用程序。我的目标是让最终用户能够连接到任何数据库(尤其是大型平台,如 Oracle、DB2、SQL Server 以及流行的平台,如 PostgreSQL、MySQL、SQlite 等),即使用户未在其系统上安装相关驱动程序。

我不知道该怎么做。我应该将所有驱动程序与我的应用程序一起分发吗?有没有一刀切的解决方案?例如,我可以分发 Oracle 驱动程序,而无需用户在他的系统中安装 Oracle 客户端吗?我想知道最好的方法是什么。任何参考将不胜感激。

4

2 回答 2

1

假设您使用 ADO.NET 进行数据库连接

  • 您应该针对 DbXXX 类集(DbConnection、DbCommand 等)进行编程,以保持与数据库无关
  • 您应该使用标准提供程序工厂机制来获取已安装提供程序的列表并生成所需的 DbXXX 实例。

如果不安装相应的驱动程序,您将无法连接到数据库!您无需分发驱动程序;这是您的应用程序的每个用户都可以根据他想要连接的数据库执行的操作。

于 2012-05-10T14:15:05.607 回答
1

这听起来像是可以通过精心设计的安装程序来解决的问题。您可以将希望与应用程序一起分发的数据库驱动程序的安装包捆绑到应用程序的 MSI 文件中,并包含一个自定义安装例程,允许用户选择他想与之交互的数据库引擎。有了这些信息,您的安装程序就可以执行适当的驱动程序安装例程了。

于 2012-05-10T14:19:08.600 回答