程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> odp.net連接方式,部署問題總結,odp.net部署

odp.net連接方式,部署問題總結,odp.net部署

編輯:Oracle教程

odp.net連接方式,部署問題總結,odp.net部署


 

一. 摘要

   

在C#開發的過程中,經常需要操作Oracle數據庫,而實際在部署程序的時候,經常要根據系統環境(32、64bit)、不安裝Oracle客戶端等等需求,而Odp.net 也沒有完美兼容的類庫,應用可以調用, 所以部署起來總是碰到各種問題,挺頭疼的,在這裡,我對工作中碰到的問題進行總結一下。

二. 本文提綱

   

連接方式

32位系統

64位系統

免安裝Oracle客戶端

小結

三. 主要內容

 

連接方式

   

C#連接Oracle的方式,我一般都是通過odp.net 進行連接

 

<configuration>
    <connectionStrings>
      <add name="OracleDB" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=數據庫IP地址)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=實例名)));User Id=賬號;Password=密碼;Min Pool Size=10;Connection Lifetime=120;Connection Timeout=60;Incr Pool Size=5; Decr Pool Size=2" providerName="Oracle.DataAccess.Client"/>
    </connectionStrings>
</configuration>

32位系統

  

1. 安裝Oracle客戶端:  ODTwithODAC1120320_32bit 

  

2. 直接調用即可,沒什麼好說的,如果要免安裝客戶端,下面會說到

  

 

64位環境

 

 

 

配置文件中添加

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.121.1.0" newVersion="4.121.1.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

 

 

免安裝Oracle客戶端:

將5個Oracle客戶端的類庫文件提取出來,放到程序根目錄下,分別是oci.dll、Oracle.DataAccess.dll、orannzsbb11.dll、oraociei11.dll、OraOps11w.dll

 

 <system.data>
    <DbProviderFactories>
      <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
    </DbProviderFactories>
  </system.data>


關於64位系統下,暫時還未測試,Oracle客戶端的類庫也必須是64位的

 

四. 小結

  

  

在部署程序的時候,如果遇到一些捕捉不到的異常,底層跑出來的, 這個時候可以安裝一下 C++ 的運行庫 ,比如:vc2008redist 或 vc2010redist。


C#使用ODPnet怎使用oracle連接池

myConn = new OracleConnection( s_ConnStr );
myComm = new OracleCommand();
myConn.Open();

您說的非要用ODP.NET .我就不清楚了..
上面幾句話創建了一個連接池,同時創建了一個連接.
趙元源 [權威專家]

安裝odpnet後,用VS2008連接oracle出現錯誤

你的tnsnames中的是 service_name = tjnscs

到程序中為什麼用 SID = tjnscs 呢?

也換成 service_name = tjnscs,即:
OracleConnection con = new OracleConnection("Data Source=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.0.250)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = tjnscs) ) );User ID=tjnscs;Password=nscs;");或者:
OracleConnection con = new OracleConnection("Data Source=TJNSCS;User ID=tjnscs;Password=nscs;");
滿意請采納!

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved