由于微软在
.Net
框架4.0中已经决定撤销使用
System.Data.OracleClient
,造成在
VS2010
中无法连接
Oracle
数据库,但它还依旧存在于
.Net
架构中,我们可以通过自己引用
C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Data.OracleClient.dll
来获得对
Oracle
数据库的支持。
1、在
VS2010
中打开[解决方案管理器]--右击[引用]--[添加引用]
2、选择[浏览]找到“
C:\Windows\Microsoft.NET\Framework\v2.0.50727
”目录,在下面选择
System.Data.OracleClient.dll
之后就可以在程序编辑窗口使用
using System.Data.OracleClient
了
另外:微软决定撤销
System.Data.OracleClient
内容如下:
对于那些开发
.Net
应用程序而数据库又是
Oracle
的人来说,这则新闻显得特别有意义,微软正打算将
Oracle
数据提供程序从
ADO.NET
路线图中移除。
微软决定撤销
System.Data.OracleClient
是因为有相当数量的
MVP
都倾向于选择第三方
Oracle
数据提供程序,负责
ADO.NET OracleClient
的产品经理
Himanshu Vasishth
在
ADO.NET
团队博客文章中宣布了这一决定。
但在.Net框架4.0中微软将会继续支持
System.Data.OracleClient
,但会被标记为“不宜使用”,根据
Vasishth
的说法,这对现有的应用程序没有任何影响,它们将会按预期运转得很好。
他在文章中提到“使用
OracleClient
开发新的应用程序仍然是可行的,但在
.Net 4.0
中编译时会弹出一个警告对话框,编译好后,运行时不会再弹出警告对话框,我们强烈建议用户使用我们合作伙伴的
ADO.NET Provider for Oracle
代替微软
OracleClient
进行新应用程序的开发”。
第三方提供
Oracle
数据提供程序的有
DataDirect
和
Devart
科技公司,此外还有
Oracle
公司的数据提供程序,叫做
Oracle Data Provider for .NET (ODP.NET)
,这些都是很流行的
Oracle
数据库提供程序。
位于纽约的新技术公司twentysix首席执行官
Andrew Brust
在一封电子邮件中说“
Oracle
自身对
ADO.NET
的支持以及
Visual Studio
本身已经被人们普遍看好,
Oracle
公司有一个专职的
ADO.NET
团队,他们已经做得非常好了”。
微软最有价值专家本杰明认为微软这个决定非常有意义,微软为社么要卑躬屈膝支持连接到竞争对手的数据库呢?特别是有调查数据显示微软的客户都倾向于转向
Oracle
,微软肯定会不爽。同时,这也省去了微软
.Net
到
Oracle
的版本控制或性能问题。
微软表示将继续提供
bug
修复和关键更新,但这一切都仅限于
.Net
框架4.0中,以后就难说了
连接
oracle
数据库异常
System.Data.OracleClient
需要
Oracle
客户端软件
8.1.7
或更高版本
本人在用公司用
C#
写的服务连接数据库
oracle
时,报出上面的错误:连接
oracle
数据库异常
System.Data.OracleClient
需要
Oracle
客户端软件 8.1.7 或更高版本。在网上查了好多,试了都没有用,但是通过网上查询,说是找不到
oracle
的
oci.dll
文件,故在系统环境配置中,
PATH
中加上我自己
oracle client
的安装路径:
D:\app\admin\product\11.2.0\client_1\BIN;
即可,如果
PATH
中之前本来有内容,则在
D:\app\admin\product\11.2.0\client_1\BIN
此目录前加上;
一、点击 “高级系统设置”;
二、点击环境变量
三、编辑修改
asp.net
连接
oracle
,报错误。“
System.Data.OracleClient
需要
Oracle
客户端软件 8.1.7 或更高版本。
使用
Oracle
数据库不一定要安装客户端
System.Data.OracleClient
需要
Oracle
客户端软件 8.1.7 或更高版本。
1.下载
instantclient_11_2
,解压到任意目录下
2.在配置一下环境变量。
系统变量:在
Path
中,加入
dll
的路径;eg:
D:\Program Files\PremiumSoft\Navicat Premium\instantclient_11_2
用户变量:加一个
ORACLE_HOME
,也是这个路径;
3.重启电脑(重要)
1.
Navicat Premium
配置连接
Oracle
数据库,
可能出现的错误:
1.连接数据库`cannot load OCI DLL,193`
1.还有一个可能就是`126`的错误,都是这个`oci.dll`问题导致
C#实现不安装Oracle
客户端访问远程服务器数据
在未安装Oracle数据库客户端的前提下,C#通过使用ADO的方式远程访问服务器,会出现:“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”问题,本文提供一种方式解决该问题。
具体步骤步骤如下:
第一步:下载Instant Client
文件
Oracle官方网站提供了Instant Client
文件的下载,下载地址为:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html,里面提供了支持不同操作系统和不同Oracle
版本的对应下载,根据不同需求自己选择。
我的系统环境如下:
数据库服务器:WindowsServer2008x64
数据库服务端:oracle11.2.0.1.0
客户端系统:Windows7x64
因此我选择下载了instantclient-basic-win-x86-64-11.2.0.1.0.zip
只需在客户端将其解压即可(位置任意),我解压在d盘根目录,生成一个文件夹d:\instantclient_11_2
(然后将其修改成oracleclient
,根据自己需要修改),里面就是连接远程数据库要用到的dll文件。
第二步:配置环境变量
1、 在PATH
变量中增加【;D:\oracleclient
】,即就是刚才我们解压Instant Client
所在的目录;
2、增加以下三个变量:
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
TNS_ADMIN= D:\oracleclient
LD_LIBRARY_PATH= D:\oracleclient
第三步:配置tnsnames.ora
文件
在 D:\oracleclient
目录中增加一个tnsnames.ora
文件,内容为访问数据库的配置信息。具体步骤为:新建一个txt
文档,然后将一下内容复制进去,另存为tnsnames.ora
即可。
ORCL=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = 192.168.1.107)
(PORT = 1521)
(CONNECT_DATA =
(SERVICE_NAME = lottery)
其中的HOST、PORT、SERVICE_NAME
需要根据数据库实际信息进行修改。
说明,以下需要根据实际情况修改:
HOST = 服务器地址IP 或服务器名称
PORT = 服务器端口号,默认为“1521“
SERVICE_NAME = 服务器数据库服务的名字,默认为:”orcl“
此时在C#代码中的连接字符串可以按如下方式定义:
String conn = @"DataSource=ORCL;Persist Security Info=True;User Id=用户名;Password=密码";
否则,如果想省略第三步,在C#代码中的连接字符串必须按如下方式定义:
String conn = String.Format("Data Source=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS= (PROTOCOL = TCP)(HOST = 192.168.1.107)(PORT = 1521))) (CONNECT_DATA=(SERVICE_NAME = lottery) ) );User Id=用户名;Password=密码;");
第四步:重启系统
C#代码如下:
using System
using System.Collections.Generic
using System.Linq
using System.Text
using System.Data.OracleClient
namespace TestOracle
class Program
static void Main(string[] args)
String conn = @"Data Source=ORCL;Persist Security Info=True;User Id=testdb;Password=manager"
String conn1 = String.Format("Data Source=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.107)(PORT = 1521))) (CONNECT_DATA =(SERVICE_NAME = lottery) ) );User Id=testdb;Password=manager;")
OracleConnection oc = new OracleConnection(conn)
oc.Open()
OracleCommand cmd = oc.CreateCommand()
cmd.CommandText = "select sysdate from dual"
OracleDataReader odr = cmd.ExecuteReader()
while (odr.Read())
Console.WriteLine(odr.GetDateTime(0).ToString())
catch (Exception ex)
Console.WriteLine(ex.Message)
finally
oc.Close()
Console.Read()
运行结果:

由于微软在.Net框架4.0中已经决定撤销使用System.Data.OracleClient,造成在VS2010中无法连接Oracle数据库,但它还依旧存在于.Net架构中,我们可以通过自己引用C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Data.OracleClient.dll 来获得对Oracle数据库的支持。方法:1...
Oracle Instant Client 11.2.0.1.0是轻量级Oracle客户端,用于连接访问Oracle 9i、10g、11g 11.2.0.1.0版本的Oracle数据库。
Oracle Instant Client11.2.0.1.0 安装程序包含OCI/ OCCI、JDBC-OCI SDK(软件开发工具包),软件开发时所需的全部头文件和链接库。
此版本不支持 Pro*C/C++和.NET程序所需的Oracle Provider for OLE DB,如需支持上述功能,请访问并下载ODAC(Oracle Data Access Components,其包含 ODP.NET, Oracle Services for MTS, Oracle Providers for ASP.NET):
http://www.oracle.com/technetwork/database/windows/downloads/utilsoft-087491.html
http://www.oracle.com/technetwork/cn/database/windows/downloads/index-101312-zhs.html
此版本集成了Oracle 11g 11.2.0.1.0中的实用工具tnsping、exp/imp,支持 Object Browser、TOAD等 Oracle 管理工具,并在Windows XP、Windows Vista、Windows 7平台下测试通过。
1. 请勿使用高版本的exp/imp工具对低版本的Oralce数据库进行导出,导入操作。
2. 安装完成后需手工配置 %TNS_ADMIN%\tnsnames.ora 文件,内容如下:
??? =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = xxxxxx)
1. 将 ??? 改为任意名字,这个名字将在你的程序或程序配置中用到。
2. 将 xxx.xxx.xxx.xxx 改为要连接的 Oracle 服务器的机器名或IP地址。
3. 将 xxxxxx 改为要连接的 Oracle 服务器的 SID,如不知道 SID,请询问安装 Oracle 数据库的管理人员。
相关网站:
Oracle Instant Client 主页
http://www.oracle.com/technetwork/database/features/instant-client/index-100365.html
Oracle Instant Client 常见问题
http://www.oracle.com/technetwork/database/features/oci/ic-faq-094177.html#A3661
SQL*Plus
http://download.oracle.com/docs/cd/E11882_01/server.112/e16604/apd.htm#sthref3169
OCI(Oracle Call Interface)
http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10646/oci01int.htm#i423362
OCCI(Oracle C++ Call Interface)
http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10764/install.htm#CACFFGHF
如需源码或技术支持: Email: gosearcher@gmail.com
在用VSTS2005/2008+Oracle9做环境连接Oracle时候,在VS 开发服务器运行正常,但IIS服务器调试和部署会报错!
IIS服务器报错:System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本。
出错的原因:
1.虽然报的是需要安装客户端8.1.7及以上版本,实际是.net账户没有访问Oracle\bin...
遇到这个问题的时候,上网查了各种解决办法,发现大多数都是只有解决的一部分,没有一个彻底解决问题,这是本人一天的努力成果,希望大家能节省时间,更快解决问题。
这个是需要电脑安装oracle客户端,最起码安装客户端,安装后然后需要修改安装目录的权限以及系统环境变量。
整个流程如下:
1、下载Oracle10gClient.exe ,本人上传了软件,可供下载:
https://download....
在编写事务控制时发现无法调试到运行SQL语句那一步,并且报出System.
Data.
OracleClient.
OracleException:“ORA-00911: 无效字符 的错误,通过提示可以判断是编写的程序中有不符合的字符出现,这是对
数据库的操作,所以首先查看SQL语句能否在
数据库中执行,通过测试是可以执行的,而其他调试内容中编写事务的开始、提交、回滚是没有问题的,经过查找最终在SQL中发现末尾多了个 ; 在
数据库中执行是没有问题,但是这c#运行时还是不行,删了就好了。
在.NET中使用System.Data.OracleClient库连接Oracle数据库的步骤
1.下载并安装Instant Client
Instant Client可以在Oracle官方网站下载到
对于Windows,Instant Client有三种版本:
1)适用于 Micro...
如果不想让客户机装
Oracle客户端,你可以使用
Oracle.Managed
DataAccess.
Client,当然,这个只支持
连接Oracle10g以上的版本,9i是连不上的。
Oracle.Managed
DataAccess.
Client
`torch.utils.
data.
DataLoader` 是 PyTorch
中用于加载数据的一个重要类。它可以自动地将数据集分成多个批次,并在训练时以迭代器的形式提供数据。
使用方法很简单,只需要将数据集和批次大小传入 `
DataLoader` 的构造函数中即可,比如:
from torch.utils.
data import
DataLoader
from torchvision import
datasets, transforms
# 加载 MNIST 数据集
mnist_train =
datasets.MNIST('mnist', train=True, download=True,
transform=transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.1307,), (0.3081,))
# 使用
DataLoader 加载数据
train_loader =
DataLoader(mnist_train, batch_size=64, shuffle=True)
# 迭代训练数据
for
data, target in train_loader:
# 训练网络
其中 train_loader 为一个迭代器,每次调用 next() 函数即可得到一个批次的数据
你可以使用`num_workers`参数来使用多进程读取数据,可以节省读取数据时间
当然
DataLoader也支持并行计算
你可以使用 `torch.utils.
data.
DataLoader`来创建数据加载器,并可以通过迭代器的形式访问数据
总之,`torch.utils.
data.
DataLoader` 是 PyTorch 中极其方便的一个类,它可以很好地管理数据的加载和批次的生成。
Unable to preventDefault inside passive event listener due to target being treated as passive.
windows驱动注册中断服务程序
csphhh:
Blazor 从入门到放弃
qq6761212:
group by 和 over(partition by)的区别
cillian_bao:
java与C#的比较
hongerduohao: