gpt4 book ai didi

c# - DbProviderFactories 中未列出的 Oracle 数据提供程序 (ODP.NET)

转载 作者:搜寻专家 更新时间:2023-10-30 23:24:53 25 4
gpt4 key购买 nike

我想使用 DbProvider 类来构造一个通用 DAL 组件。这在不同的数据库提供者之间切换时会很方便。在安装了 Oracle 2.2 的机器上,当尝试列出机器上所有可用的数据库提供程序时,未列出 Oracle 提供程序 ODP.NET。

   DataTable dtable = DbProviderFactories.GetFactoryClasses();

尽管引用 Oracle.DataAccess.dll 并使用 OracleConnection 类连接到 Oracle 没有问题。

OracleConnection con = new OracleConnection();

我在这里做错了什么?

编辑:根据这个page我应该在列表中看到“Oracle Data Provider for .Net”。

最佳答案

下面是 DbProviderFactories.GetFactoryClasses 的工作原理...

默认情况下(如果您没有 app.config),它将在您的 machine.config 中查找名为 system.data/DBProviderFactories 的部分。基本上所有可访问的“已注册”数据库提供程序都可以在该部分找到。

因此,要么将其添加到您的 app.config system.data/DBProviderFactories 部分,要么添加到 machine.config。

类似于:

<configuration>
<system.data>
<DbProviderFactories>
<add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description=".Net Framework Data Provider for Oracle" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=10.2.0.100, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>
</configuration>

并确保您的 ODP.NET 版本支持 DbProviderFactories。我认为您需要 Oracle 数据库 10g 第 2 版才能执行此操作。

关于c# - DbProviderFactories 中未列出的 Oracle 数据提供程序 (ODP.NET),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1114539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com