我确定,我oracle里面的配置都是正确的(因为我用pb,plsql都可以连接oracle数据库)
但是我想.net里面连接oracle数据库的时候就是报错
我的连接文件是这样写了的:Provider=OraOLEDB.Oracle;User ID=hwuser;Password=hw2001;Data Source=ora8;
我是这样些的访问数据库方法static string oraConStr = ConfigurationSettings.AppSettings["oreConnection"];        /**
         * 数据库中查询语句执行
         */ 
        public DataSet QueryInfo(string sql)
        {
            DataSet ds = new DataSet ();
            OleDbConnection olecon = new OleDbConnection(oraConStr);
            OleDbDataAdapter oledba = new OleDbDataAdapter(sql, olecon);
            oledba.Fill(ds);
            return ds;
        }
        
但是在我执行 oledba.Fill(ds);的时候就报错:用户代码未处理:InvalidOperationException“未在本地计算机上注册“OraOLEDB.Oracle”提供程序。”
请高手帮助一下赛,谢了!!!

解决方案 »

  1.   

    oracle客户端装了没?还有tnsname.ora有没有正确的放置在指定的位置?
      

  2.   

    Data Source = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS =(PROTOCOL = TCP)(HOST =服务器名)(PORT = 端口号)))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = 数据库名))); User Id = 用户名; Password = 密码;试试这串,我做数据转换的时候用过,没问题
      

  3.   

    装了的,配置是:# E:\ORACLE\ORA81\NETWORK\ADMIN\TNSNAMES.ORA Configuration File:E:\Oracle\Ora81\NETWORK\ADMIN\tnsnames.ora
    # Generated by Oracle Net8 AssistantORA8 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.188)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SID = ORCL)
        )
      )
      

  4.   

    Data   Source   =   (DESCRIPTION   =   (ADDRESS_LIST   =   (ADDRESS   =(PROTOCOL   =   TCP)(HOST   =服务器名)(PORT   =   端口号)))(CONNECT_DATA   =   (SERVER   =   DEDICATED)(SERVICE_NAME   =   数据库名)));   User   Id   =   用户名;   Password   =   密码; 试试这串,我做数据转换的时候用过,没问题
    我试了,还是不行,权限也没有什么问题
      

  5.   

    tnsname.ora文件放在:E:\Oracle\Ora81\NETWORK\ADMIN里面的