C# 连接Oracle数据库
最近项目要用Oracle数据库,之前没搞过,近2天遇到好多问题,现在总结一下,做个备份。
一、关于Oracle安装
1.服务器端 从Oracle官网下载文件,file1和file2,解压之后安装就行了,注意目录不要有中文和空格。
2.然后配置监听器和服务命名:
2.1.监听器:
2.2.服务命名
3.接着是本地客户端的安装:
3.1 我在这下载的简易客户端:http://pan.baidu.com/share/link?shareid=514153&uk=3255414737 下载之后解压。
3.2 把服务器上的Oracle目录下的 G:\app\Administrator\product\11.2.0\dbhome_1 找到NETWORK文件夹,拷贝一下,贴到上面那个解压的目录里面,(其实主要是拷贝tnsnames.ora文件,记录的连接信息).
附图:简易客户端目录:
3.3 下一步安装pl sql develop. 进入之后 在 perference->Connection里面设置OCI Library和Oracle_Home,例如本机设置为:
Oracle Home :D:\instantclient_11_2
OCI Library : D:\instantclient_11_2\oci.dll
3.4 配置2个环境变量: TNS目录和编码
TNS_ADMIN : D:\instantclient_11_2\NETWORK\ADMIN
NLS_LANG :SIMPLIFIED CHINESE_CHINA.ZHS16GBK
然后重新允许plsql dev 下拉列表就有数据库了。参考:http://it.oyksoft.com/post/6003/
二、C# 连接Oracle 报错:System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本
网上有说因为NTFS格式 的 权限问题导致了,我到服务器改了一下发现没有效果。后来花1个积分在CSDN上下了一个仅3行txt文档,完美解决。
文档内容如下:
(1)在Oracle官方下载instantclient-basic-win32-XXX.zip
(2)解压文件
(3)复制“oci.dll”与“oraocieiXX.dll”(注:如果是11g的话就应是“oraociei11.dll”,以此类推)到C:\Windows
补充一下连接字符串:
String connection ="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=60.190.222.192) (PORT=1521)))(CONNECT_DATA=(SERVICE_NAME= orcl)));User Id=xx; Password=xx"; OracleConnection conn = new OracleConnection(connection); conn.Open();