在.net下面用C#开发MIS应用程序,数据库一般使用的是微软的sql server,同属微软家族的产品在开发过程中一般一帆风顺。但近来,项目组要求应用程序的数据库转向oracle数据库,在试验过程中遇到了一些莫名其妙的麻烦,虽然问题已经解决,但我还不知道是什么原因?下面是我试验过程的基本介绍:
1、环境
数据库:oracle 8.17 安装的是企业版
开发工具:vs 2003
操作系统:win 2003
项目采用的是c/s结构
试验是在同一机器上进行的
2、问题起因及结果
1)程序编写之前oracle数据库运行正常,通过客户端访问工具正常访问,服务也正常。程序代码采用的是.ne提供专门针对oracle数据库的开发组件:using System.Data.OracleClient,
2)程序调试运行,运行到oracleConnection.Open()方法的时候,就会弹出“Could not create an environment: OCIEnvCreate returned -1.” 仔细检查我的程序和用户名、密码以及服务名,都没什么问题,但不管怎么样就是弹出那个异常信息。最后google一下,发现了这个问题出现的大致原因是说我的权限不够,需要对oracle安装的主目录重新设置一下运行权限,可那个信息据说都是针对asp.net 的程序,天知道对于c/s程序怎么出现这个问题。
3)没办法,即然出现这个问题就要想办法解决,因为我的oracle主目录是安装在fat32文件类型目录下面,而不是他们所说的ntfs,所以网上提供的解决方法根本就不能进行下去,请教其它的人,都说c/s程序没有出现这个问题,也没解决。faint,难道我的rp有问题。
4)现在事情即然到了这一步,只要出杀手锏,把oracle的安装环境重新配置。备份oracle数据库,卸载oracle,重新在我的系统目录(NTFS)上面在装一个oracle,安装完毕,启动监听程序和服务,运行程序,靠,居然运行成功。难道真的与文件类型有关系?
3、后记
以上就是C#连接oracle数据库经历,虽然可以访问oracle数据库了,但原因就是没搞清,为什么会出现这个问题?难道真的因为我的逻辑盘是FAT32原因?可觉得没道理阿……那位大虾如果知道原因,希望赐教,希望大家可以讨论讨论……