os: windows 2003
.net framework : 3.5
已经安装了oracle数据库,但还是提示找不到,请高手指点。
System.Data.OleDb.OleDbException: 未找到 Oracle 客户端和网络组件。这些组件是由 Oracle 公司提供的,是 Oracle 8i 版 (或更高) 客户软件安装的一部分。
在安装这些组件之前,将无法使用此提供程序。
在 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
在 System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
在 System.Data.OleDb.OleDbConnection.Open()
在 System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState)
在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
在 _database.ReturnDataset(String _sql)
在 WS.Database.ReturnResult(String _sql)
20 个解决方案
#1
不光要安装Oracle,还要安装Oracle Data Provider for .NET。
#2
webservice 连不上Oracle 是不是少驱动??
#3
这个是用的是OleDb,所以他使用oracle自己的驱动应该就可以了。
以前也没有安装过Oracle Data Provider for .NET。
或者能不能给一个Oracle Data Provider for .NET的下载链接?
谢谢
以前也没有安装过Oracle Data Provider for .NET。
或者能不能给一个Oracle Data Provider for .NET的下载链接?
谢谢
#4
需要在Net Manager里面配置 服务。你配了没?
#5
怎么不用 System.Data.OracleClient呢?
#6
要解决以上问题,只要给Authenticated Users 组加*问Oracle Home目录的权限即可1、以Administrator权限登录Windows 2、启动Window 资源浏览器找到ORACLE_HOME目录,如C:\Oracle\ora92 3、右键弹出菜单,选择该目录共享与安全(Win2000下要点击属性) 4、点击 “安全” 页签 5、在组和用户名称列表中点击“Authenticated Users” 项. 6、在该用户的权限列表中,将“读取和运行”的选择框置为不选中状态 7、再次点击“读取和运行”的选择框,将其设置为选中状态 8、点击“高级”按钮并在权限项目中确定“Authenticated Users” 是否拥有“读取并运行”权限并应用于“该文件夹,及子文件夹和文件”. 如果不是,双击这样,并确保权限可以“应用于” “该文件夹,及子文件夹和文件”. 该项非常重要你一定要核查. 9、点击“确定” 按钮 10、重启动, 以使得所有的修改生效
我遇到过 这样的问题
我遇到过 这样的问题
#7
权限设置要应用到所有子目录
#8
http://www.oracle.com/technology/tech/dotnet/index.html
#9
这样也是试了,还是不行
#10
看了一下,oracle数据库已经安装了Oracle Data Provider for .NET
#11
哪位高手知道需要哪些 “Oracle 客户端和网络组件” 的文件,
把这些文件放到哪里webservice可以找到呢?
是不是放到system32下面肯定可以找到?
谢谢
把这些文件放到哪里webservice可以找到呢?
是不是放到system32下面肯定可以找到?
谢谢
#12
CHECK
#13
我把oracle92/bin下面的dll全部copy到system32下面以后,
又出现了下面的错误,
System.Data.OleDb.OleDbException: 发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。
在 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
在 System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
在 System.Data.OleDb.OleDbConnection.Open()
在 System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState)
在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
在 _database.ReturnDataset(String _sql)
在 WSMES.Database.ReturnResult(String _sql)
又出现了下面的错误,
System.Data.OleDb.OleDbException: 发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。
在 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
在 System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
在 System.Data.OleDb.OleDbConnection.Open()
在 System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState)
在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
在 _database.ReturnDataset(String _sql)
在 WSMES.Database.ReturnResult(String _sql)
#14
up
#15
先直接用sqlplus连接看看.
在检查检查net manager里面是否配置正确.
在检查检查net manager里面是否配置正确.
#16
用sqlplus可以正确连接
#17
第一种方法:
找到 Oracle 9i 客户端的安装目录,我的是d:\oracle,右键属性-〉安全-〉选择上面的用户Authenticated Users,将权限的读取及运行(默认应该就是选中的),将选中点击为不选中(就是勾去掉),然后在点击选中,然后应用,确定,然后重新启动系统。看起来是没有进行操作,但实际上还是有作用的,原因不清楚,有人说是Oracle的BUG 。
第二种方法:
找到Oracle 9i 客户端的安装目录,我的是 d:\oracle,右键属性-〉安全-〉添加Everyone这个用户,并赋给完全控制的权限,然后应用,确定,然后重新启动系统。
找到 Oracle 9i 客户端的安装目录,我的是d:\oracle,右键属性-〉安全-〉选择上面的用户Authenticated Users,将权限的读取及运行(默认应该就是选中的),将选中点击为不选中(就是勾去掉),然后在点击选中,然后应用,确定,然后重新启动系统。看起来是没有进行操作,但实际上还是有作用的,原因不清楚,有人说是Oracle的BUG 。
第二种方法:
找到Oracle 9i 客户端的安装目录,我的是 d:\oracle,右键属性-〉安全-〉添加Everyone这个用户,并赋给完全控制的权限,然后应用,确定,然后重新启动系统。
#18
#19
下载:
http://www.oracle.com/technology/global/cn/software/tech/windows/odpnet/index.html
Oracle Developer Tools for Visual Studio
引用Oracle.DataAccess.dll就可以了
http://www.oracle.com/technology/global/cn/software/tech/windows/odpnet/index.html
Oracle Developer Tools for Visual Studio
引用Oracle.DataAccess.dll就可以了
#20
虽然问题没有解决,但是非常感谢楼上的各位。
#21
#1
不光要安装Oracle,还要安装Oracle Data Provider for .NET。
#2
webservice 连不上Oracle 是不是少驱动??
#3
这个是用的是OleDb,所以他使用oracle自己的驱动应该就可以了。
以前也没有安装过Oracle Data Provider for .NET。
或者能不能给一个Oracle Data Provider for .NET的下载链接?
谢谢
以前也没有安装过Oracle Data Provider for .NET。
或者能不能给一个Oracle Data Provider for .NET的下载链接?
谢谢
#4
需要在Net Manager里面配置 服务。你配了没?
#5
怎么不用 System.Data.OracleClient呢?
#6
要解决以上问题,只要给Authenticated Users 组加*问Oracle Home目录的权限即可1、以Administrator权限登录Windows 2、启动Window 资源浏览器找到ORACLE_HOME目录,如C:\Oracle\ora92 3、右键弹出菜单,选择该目录共享与安全(Win2000下要点击属性) 4、点击 “安全” 页签 5、在组和用户名称列表中点击“Authenticated Users” 项. 6、在该用户的权限列表中,将“读取和运行”的选择框置为不选中状态 7、再次点击“读取和运行”的选择框,将其设置为选中状态 8、点击“高级”按钮并在权限项目中确定“Authenticated Users” 是否拥有“读取并运行”权限并应用于“该文件夹,及子文件夹和文件”. 如果不是,双击这样,并确保权限可以“应用于” “该文件夹,及子文件夹和文件”. 该项非常重要你一定要核查. 9、点击“确定” 按钮 10、重启动, 以使得所有的修改生效
我遇到过 这样的问题
我遇到过 这样的问题
#7
权限设置要应用到所有子目录
#8
http://www.oracle.com/technology/tech/dotnet/index.html
#9
这样也是试了,还是不行
#10
看了一下,oracle数据库已经安装了Oracle Data Provider for .NET
#11
哪位高手知道需要哪些 “Oracle 客户端和网络组件” 的文件,
把这些文件放到哪里webservice可以找到呢?
是不是放到system32下面肯定可以找到?
谢谢
把这些文件放到哪里webservice可以找到呢?
是不是放到system32下面肯定可以找到?
谢谢
#12
CHECK
#13
我把oracle92/bin下面的dll全部copy到system32下面以后,
又出现了下面的错误,
System.Data.OleDb.OleDbException: 发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。
在 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
在 System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
在 System.Data.OleDb.OleDbConnection.Open()
在 System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState)
在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
在 _database.ReturnDataset(String _sql)
在 WSMES.Database.ReturnResult(String _sql)
又出现了下面的错误,
System.Data.OleDb.OleDbException: 发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。
在 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
在 System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
在 System.Data.OleDb.OleDbConnection.Open()
在 System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState)
在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
在 _database.ReturnDataset(String _sql)
在 WSMES.Database.ReturnResult(String _sql)
#14
up
#15
先直接用sqlplus连接看看.
在检查检查net manager里面是否配置正确.
在检查检查net manager里面是否配置正确.
#16
用sqlplus可以正确连接
#17
第一种方法:
找到 Oracle 9i 客户端的安装目录,我的是d:\oracle,右键属性-〉安全-〉选择上面的用户Authenticated Users,将权限的读取及运行(默认应该就是选中的),将选中点击为不选中(就是勾去掉),然后在点击选中,然后应用,确定,然后重新启动系统。看起来是没有进行操作,但实际上还是有作用的,原因不清楚,有人说是Oracle的BUG 。
第二种方法:
找到Oracle 9i 客户端的安装目录,我的是 d:\oracle,右键属性-〉安全-〉添加Everyone这个用户,并赋给完全控制的权限,然后应用,确定,然后重新启动系统。
找到 Oracle 9i 客户端的安装目录,我的是d:\oracle,右键属性-〉安全-〉选择上面的用户Authenticated Users,将权限的读取及运行(默认应该就是选中的),将选中点击为不选中(就是勾去掉),然后在点击选中,然后应用,确定,然后重新启动系统。看起来是没有进行操作,但实际上还是有作用的,原因不清楚,有人说是Oracle的BUG 。
第二种方法:
找到Oracle 9i 客户端的安装目录,我的是 d:\oracle,右键属性-〉安全-〉添加Everyone这个用户,并赋给完全控制的权限,然后应用,确定,然后重新启动系统。
#18
#19
下载:
http://www.oracle.com/technology/global/cn/software/tech/windows/odpnet/index.html
Oracle Developer Tools for Visual Studio
引用Oracle.DataAccess.dll就可以了
http://www.oracle.com/technology/global/cn/software/tech/windows/odpnet/index.html
Oracle Developer Tools for Visual Studio
引用Oracle.DataAccess.dll就可以了
#20
虽然问题没有解决,但是非常感谢楼上的各位。