安装,
以前Oracle使用9i版本,因为公司就使用这个版本开发数据库.
但是Win2008 不兼容只能使用oracle 11G 没这了,使用11G 吧
但是出现了毛病 自己开发Vs2008程序的时候的使用Oracle.DataAccess.dll
以前Oracle使用9i版本,因为公司就使用这个版本开发数据库.
但是Win2008 不兼容只能使用oracle 11G 没这了,使用11G 吧
但是出现了毛病 自己开发Vs2008程序的时候的使用Oracle.DataAccess.dll
因为我使用的是11G的数据库,所以开发非常的顺利,
底层已经开发完成都已经封装好了,剩下了一点,因为来的别的重要的任务交给同事,继续开发!
这时候出现了错误了:
csharp代码
- Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常
因为他的机子了装的是Oracle 9i不兼容最新的Oracle.DataAccess.dll !
还有发布时机子基本上都是Oracle 9i的数据库,只用使用ODP.NET 来实现了,
我认为在每次的时候都安装下ODP.NET 非常的不方便!而且有可能跟以前的程序产生兼容性问题
最后决定使用 免安装版本的自己集成到Dll里面
下载的是ODAC1110720Xcopy 版本 从里面提取了
- oci.dll
- ociw32.dll
- Oracle.DataAccess.dll
- orannzsbb11.dll
- oraocci11.dll
- oraociei11.dll
- OraOps11w.dll
7个文件 放在一个DLL文件夹了 里面Web程序使用的时候
直接引用 Oracle.DataAccess.dll 但必须剩下的6个文件都拷贝到BIn文件夹里面 就直接能使用了
但要注意的是 你使用ODP.NET 就不能使用 tnsnames.ora 来引用
必须手写连接 格式如下:
xml代码
- Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));
- User Id=myUsername;Password=myPassword;
还有注意当这些都设置完成后 有可能出现这个错误!
csharp代码
- ORA-12505: TNS:listener does not currently know of SID given in connect descriptor
这时候你必须修改注册表才成
修改如下: 打开注册表
HKEY_LOCAL_MACHINE\Software\Oracle\NLS_LANG
查看 NLS_LANG 的值 是否是NA
如果是 删除 NLS_LANG 直接重启计算机就好了
Ok
下载 ODP.NET