System.Data.OracleClient要求Oracle客户端软件版本为8.1.7或更高
本文关键字:版本 OracleClient Data 要求 Oracle 软件 客户端 System | 更新日期: 2023-09-27 18:12:03
我在我的PC上安装了Oracle客户端版本10g(注册表ORACLE_BASE-D:' Oracle 'product'10.2.0)。我添加了以下参考资料。System.Data.OracleClient .
我得到上面提到的错误。下面是代码片段。
public static OracleConnection getConnection()
{
try
{
dataSource = new SqlDataSource();
dataSource.ConnectionString = System.Configuration.ConfigurationManager.AppSettings.Get("conn");
OracleConnection connection = new OracleConnection();
if (dataSource == null)
{
// Error during initialization of InitialContext or Datasource
throw new Exception("###### Fatal Exception ###### - DataSource is not initialized.Pls check the stdout/logs.");
}
else
{
connection.ConnectionString = dataSource.ConnectionString;
connection.Open();
}
return connection;
}catch (Exception ex)
{
throw ex;
}
}
请让我知道什么是关注的领域和我的缺失。我是Oracle和Asp.Net结合的新手。
看起来您正在使用Microsoft oracle客户端。我建议您使用ODP.net驱动程序,因为它更可靠。(我相信微软客户端也被弃用了?)
http://www.oracle.com/technetwork/topics/dotnet/index - 085163. - html
安装ODP.net驱动,添加Oracle引用。您的项目中的数据访问,然后就可以开始了!示例代码(来自我以前的帖子):
using System;
using System.Data;
using Oracle.DataAccess.Client;
static class Program
{
[STAThread]
static void Main()
{
TestOracle();
}
private static void TestOracle()
{
string connString =
"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)" +
"(HOST=servername)(PORT=1521)))" +
"(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=servicename)));"+
"User Id=username;Password=********;";
using (OracleConnection conn = new OracleConnection(connString))
{
string sqlSelect = "SELECT * FROM TEST_TABLE";
using (OracleDataAdapter da = new OracleDataAdapter(sqlSelect, conn))
{
var table = new DataTable();
da.Fill(table);
if (table.Rows.Count > 1)
Console.WriteLine("Successfully read oracle.");
}
}
}
}
编辑:我以前也遇到过"需要Oracle客户端软件版本8.1.7或更高"的错误。我是由于在我的计算机上安装了Oracle客户端而引起的。如果您设置使用Microsoft驱动程序,您可以尝试从计算机上卸载Oracle客户端(讽刺的是)。
在本例中,基本上是System.Data。OracleClient需要访问一些不属于。net的oracle dll。解决方案:
- 安装Oracle客户端,并将Oracle客户端bin位置添加到windows的Path环境变量中或
- 复制oraociicus10.dll(基本精简版)或aociei10.dll(基本版),oraocci10.dll, orannzsbb10.dll和oraocci10.dll从oracle客户端安装文件夹到应用程序的bin文件夹,以便应用程序能够找到所需的dll
"我的PC上安装了Oracle客户端版本10g "System.Data。OracleClient要求Oracle客户端软件版本为8.1.7或更高"
您使用的是Microsoft OracleClient, System.Data.OracleClient中的类型在。net Framework 4.0中贬值并将被删除从。net的未来版本http://msdn.microsoft.com/en-us/library/77d8yct7.aspx
检查您的计算机上是否仍然有较旧的Oracle客户端(8或更低)。PATH变量可能仍然指向旧的Oracle客户端bin目录。如果你从windows命令行运行'tnsping',如果你没有看到版本10,那么它仍然默认为旧版本。
在安装新的Oracle客户端之前,最好先卸载所有现有的Oracle客户端。然后安装您的oracle数据库服务器和您的组织支持的最高版本的oracle客户端。
你可能想尝试Oracle Client 11g R2并安装Oracle Data Providers for .NEThttp://www.oracle.com/technetwork/topics/dotnet/index - 085163. - html
如果您使用的是。net Framework 4.0或更高版本,当您添加对Oracle的引用时。Visual Studio项目中的数据访问,请确保此DLL的版本为4.x.x。否则,浏览到您的客户机位置并选择4.x.x。x dll
客户端计算机仍然需要安装Oracle客户端软件才能连接Oracle数据库。数据库用户使用SQL*Net作为Oracle数据库的连接层。System.Data.OracleClient
dll不提供此功能。
下载Oracle客户端软件
在编译代码时还必须包含对DLL的引用。例如,如果你正在编译一个c#程序,你的命令行应该包括:
如:- csc /r:System.Data.OracleClient.dll
MSDN