我用c#写的asp.net访问oracle9i的数据,硬盘分区格式均为NTFS格式,代码如下:……
using System.Data;
using System.Data .OleDb;
using System.Data .OracleClient;
……
string strconn;
strconn="Data Source=report;User ID=hjb;PassWord=hjb;";
OracleConnection con = new OracleConnection(strconn);
con.Open(); 
OracleDataAdapter mycommand = new OracleDataAdapter("select OSFSEQ from TR06F",con);
DataSet ds = new DataSet();
mycommand.Fill(ds,"TR06F");
testgrid.DataSource = ds.Tables["TR06F"].DefaultView;
testgrid.DataBind();    刚开始启动是显示错误是:无法加载 DLL (oci.dll)。跟踪到语句con.Open();出错。    然后我下载了一个ODP For .Net来安装,之后把到OraHome1文件夹的-》属性-》安全,选Authenticated  Users,下面的属性,将Read  and  Execute  的勾去掉,然后又勾上,确定重新启动机器,结果报另外一个错误:ORA-12154: TNS: 无法处理服务名 异常详细信息: System.Data.OracleClient.OracleException: ORA-12154: TNS: 无法处理服务名
还是执行到conn.Open();这一句出错。大侠们快帮帮忙吧,搞了几天,快崩溃了~~!!

解决方案 »

  1.   

    建议装个Oracle9i的客户端,检查
    C:\oracle\ora92\network\admin\tnsnames.ora文件中关于report的设置
    Start---Run---cmd.exeC:\WINDOWS>TNSPING reportTNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 22-9月 -2004 19:03:01Copyright (c) 1997 Oracle Corporation.  All rights reserved.已使用的参数文件:
    C:\oracle\ora92\network\admin\sqlnet.ora
    已使用 TNSNAMES 适配器来解析别名
    Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 20.39.69.10)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATE
    D) (SERVICE_NAME = report)))
    OK(420毫秒)如果这样应该就成功了。
      

  2.   

    客户端安装了吗?
    首先保证你用odbc配置能连接成功在安装目录下有个ora92的文件夹,属性里 安全有个authenticated user这个用户,
    给他读 写 修改的权限
      

  3.   

    关于无法加载oci.dll:刚好这几天我遇到过,解决方法正如楼上所说,其实只要给出oci.dll加上authenticated users用户权限,重启后就行了.
    关于无法处理服务名:可以直接用记事本打开oracle\ora92\network\admin\tnsnames.ora这个文件,看看其配置是否正确,DESCRIPTION =服务名 (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 20.39.69.10)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATE
    D) (SERVICE_NAME = 数据库ID));也可用配置向导重新配置一个本地服务名
      

  4.   

    哦,好的,我先试试看,但是我的oracle安装目录下没有ora92这个文件夹啊!
      

  5.   

    我现在装的就是oracle9i的客户端啊。
        是这样的,我机子系统是server2003,装的是oracle9i客户端,我要访问的是另一台服务器上面的oracle8i的数据库。