.net使用Oracle驱动Oracle.DataAccess.Client.dll连接Oracle数据库

4 篇文章 0 订阅
2 篇文章 0 订阅

要连接Oracle需要先安装Oracle驱动ODTwithODAC121024,具体名称为ODAC with Oracle Developer Tools for Visual Studio,下载地址为https://www.oracle.com/database/technologies/dotnet-odacdev-downloads.html,

 

下载后安装比较慢,安装完成后找到product\12.1.0\client_1\odp.net\bin\4路径里面的OraProvCfg.exe文件双击运行后会在环境变量自动增加Oracle驱动的路径:

运行完成后会右键 此电脑(或我的电脑)-》高级系统设置-》环境变量-》找到Path:

双击Path可以看到刚才运行OraProvCfg.exe新增的环境变量配置

如果使用.net2.0版本则需要找到product\12.1.0\client_1\odp.net\bin\2.x路径,其他的配置同上面的4.0配置一样。

安装驱动后会在C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config目录的machine.config文件夹自动配置:

    <section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    <section name="oracle.unmanageddataaccess.client" type="OracleInternal.Common.CustomSectionHandler, Oracle.DataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    <section name="oracle.dataaccess.client" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

还有下面部分,如果没有就需要自己手动添加:

    <membership>
      <providers>
        <add name="OracleMembershipProvider" type="Oracle.Web.Security.OracleMembershipProvider, Oracle.Web, Version=4.121.2.1, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName="" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />
 
    </membership>
    <profile>
      <providers>
        <add name="OracleProfileProvider" type="Oracle.Web.Profile.OracleProfileProvider, Oracle.Web, Version=4.121.2.1, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName="" />

      </providers>
    </profile>
    <roleManager>
      <providers>
        <add name="OracleRoleProvider" type="Oracle.Web.Security.OracleRoleProvider, Oracle.Web, Version=4.121.2.1, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName="" />
        <add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      </providers>
    </roleManager>

 

找到product\12.1.0\client_1\odp.net\bin\4目录下的Oracle.DataAccess.dll文件复制到项目里面并且引入(.net2.0在D:\Soft\Oracle\product\12.1.0\client_1\odp.net\bin\2.x)

web.config的connectionStrings节点里面增加Oracle数据的连接

    <add name ="OracleDB" connectionString ="Data Source=192.168.1.1/数据库名(orcl);User ID=sa;Password=123" providerName="Oracle.DataAccess.Client" />


安装Oracle驱动后如果获取数据提示报错:未将对象引入到实例的解决办法:
oracle驱动的安装路径product\12.1.0\client_1中找到oraons.dll文件,然后复制到product\12.1.0\client_1\bin目录中即可。

 

            using (OracleConnection conn = new OracleConnection(System.Configuration.ConfigurationManager.AppSettings["OracleDB"]))
            {
                conn.Open();
                string sql = "select * from  库.表";

                using (OracleCommand comm = new OracleCommand(sql, conn))
                {

                    using (OracleDataReader rdr = comm.ExecuteReader())
                    {

                        while (rdr.Read())
                        {
                            Console.WriteLine("UserName:" + rdr.GetString(0) + ",UserId:" + rdr.GetInt32(1) + ",点数:" + rdr.GetInt32(2) + "," + rdr.GetDateTime(3));

                        }

                    }

                }

            }

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值