1. 程式人生 > >通過odp.net方式連線Oracle資料庫

通過odp.net方式連線Oracle資料庫

問題描述:
先說下基本開發環境:在winserver2008 r2 上安裝了oracle 32位Client,通過vs2012 新建C# 網站工程連線伺服器端的oracle。
連線字串為:”Provider=OraOLEDB.Oracle;data source=ccenter;user id=query;password=query”
在呼叫 constring.Open();時報錯:“未在本地計算機上註冊“OraOLEDB.Oracle”提供程式。”
覺得這個問題很奇葩,我又用vs2012 新建了一個控制檯的C#工程,同樣的連線方式就能成功的連上Oracle Server.
網上也百度提問了一下,給的結果如下:這裡寫圖片描述


在網上我又找了好多方法都沒有解決,只好採用odp.net的方式連線資料庫。
在此補充一下,因為之前連線oracle一直都是安裝好oracle client 之後才能往下連線。
參考地址如下:
http://www.cnblogs.com/yjmyzz/archive/2013/11/01/3400999.html

然後我也寫了一個自己的共通類庫,程式碼如下:

using Oracle.ManagedDataAccess.Client;
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;

namespace DataHelp
{
    public
class ODPOracle { #region 類變數 /// <summary> /// 連線資料庫類 /// </summary> protected OracleConnection constring; /// <summary> /// 連線字串 /// </summary> private string strcon = ""; #endregion #region 構造方法 public
ODPOracle() { } public ODPOracle(string constr) { strcon = constr; } #endregion #region 開啟資料庫連線 /// <summary> /// 開啟資料庫連線 /// </summary> public void Open() { try { constring = new OracleConnection(strcon == "" ? System.Configuration.ConfigurationSettings.AppSettings["constrOrcl"] : strcon); // <add key="constrOrcl" value="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.101)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=dat))));Persist Security Info=True;User ID=userTest;[email protected]*;"/> constring.Open(); } catch (Exception ex) { LogService.Write("ODP類庫的Open方法發生異常:" + ex.Message); constring.Dispose(); } } #endregion #region 關閉Oracle資料庫連線 /// <summary> /// 關閉資料庫連線 /// </summary> /// <param name="constring"></param> public void CloseConn() { if (constring == null) { return; } try { if (constring.State != ConnectionState.Closed) { constring.Close(); } } catch (Exception ex) { LogService.Write("ODP類庫的CloseConn方法發生異常:" + ex.Message); } finally { constring.Dispose(); } } #endregion #region 執行SQL語句,返回DataTable /// <summary> /// 執行Select語句,返回DataTable /// </summary> /// <param name="CmdString">sql語句</param> /// <returns></returns> public DataTable GetDateTable(string CmdString) { DataTable dt = new DataTable(); Open(); OracleDataAdapter MyDa = new OracleDataAdapter(CmdString, constring); try { MyDa.Fill(dt); MyDa.Dispose(); CloseConn(); } catch (Exception ex) { LogService.Write("ODPOracle類庫的GetDateTable方法:" + ex.Message); } return dt; } #endregion #region 執行sql語句,返回唯一的資料 /// <summary> /// 執行sql語句,返回唯一的資料,失敗返回0 /// </summary> /// <param name="sql"></param> /// <returns></returns> public string ExecuteSale(string CmdString) { OracleCommand myCmd = new OracleCommand(); try { Open(); myCmd = new OracleCommand(CmdString, constring); return myCmd.ExecuteScalar().ToString(); } catch (System.Exception ex) { LogService.Write("ODPOracle類庫的ExecuteSale方法:" + ex.Message); } finally { myCmd.Dispose(); CloseConn(); } return ""; } #endregion } }

相關推薦

通過odp.net方式連線Oracle資料庫

問題描述: 先說下基本開發環境:在winserver2008 r2 上安裝了oracle 32位Client,通過vs2012 新建C# 網站工程連線伺服器端的oracle。 連線字串為:”Provider=OraOLEDB.Oracle;data sour

使用adodb方式連線oracle資料庫

我們自動化指令碼很多時候需要連結資料庫進行資料驗證或者資料準備,一般是用ADODB.Connection物件的open方法獲取資料庫連結,open方法的連結字串可以有很多種的形式,如:使用odbc、OraOLEDB.OracleOracle,但我們需要只需讀取某個配置檔案中

Mac系統下通過Parallels虛擬機器連線Oracle資料庫

     很多初次學資料庫的朋友,對於通過虛擬機器訪問資料庫,經常會出現各種設定問題,本文希望能夠幫助學者,高手大牛請飄過。 1、準備工作 a)在Mac系統電腦上安裝好Parallels Deskop虛擬機器,虛擬機器安裝好作業系統,如Windows xp(真正應用建議用

c# winform通過mysql .net驅動連線mySql資料庫

1.安裝mysql; 2.安裝mysql-connector-net-6.6.4 點選下載(需要.net framework 4支援) 3.在工程中新增引用MySql.Data.dll 4.程式碼中新增using MySql.Data.MySqlClient; 5.剩下的就和mssql的操作一樣了只是連線字

java通過配置屬性檔案連線Oracle資料庫

     做web專案開發中,通過配置屬性檔案實現連線資料庫(Oracle)的功能。    1.將屬性檔案放在WEB-INF/classes目錄下      例如屬性檔案:demo_db.propert

C#連線Oracle資料庫的方法(Oracle.DataAccess.Client也叫ODP.net)(重要)

官方下載地址(ODP.net)(中文):http://www.oracle.com/technetwork/cn/topics/dotnet/downloads/index.html 官方下載地址(ODP.net):http://www.oracle.com/technetwork/topics

64位作業系統使用ODP.NET連線Oracle資料庫

    在64位的windows作業系統中安裝了64位的Oracle後,使用C#通過Oracle.DataAccess.dll操作Oracle資料庫時, 有時候會出現如下一些錯誤:” 無法載入 DLL“OraOps10.dll”: 找不到指定的模組。”而無法連線Oracle

ABAP使用ODBC的方式進行ORACLE資料庫連線

SAP本身支援直接對外部多種資料庫的直接訪問,資料庫型別通過搜尋幫助可知: 這裡主要介紹如何進行ORA也就是oracle資料庫的連線以及給出例項。 ORA的配置分成二部分,一部分是SAP伺服器需要有oracle的資料庫驅動,比較直接的方式就是在伺服器上安裝相應版本的oracle,然後配置tnsname

QT通過ODBC驅動連線Oracle資料庫

1)我是用的是qt4.8.6,裡面是自帶odbc驅動的,如果沒有的話也可以進行編譯,具體方法是: 第一步,開啟qt下的黑窗體; 第二步,一次輸入:           1、  cd C:\Qt\4.8.6\src\plugi

用Navicat連線Oracle資料庫時報錯ORA-28547:connection to server failed, probable Oracle Net admin error

  用Navicat連線Oracle資料庫時出現如下錯誤     上網一查原來是oci.dll版本不對。因為Navicat是通過Oracle客戶端連線Oracle伺服器的,Oracle的客戶端分為兩種,一種是標準版,一種是簡潔版,即Oracle Install Clie

C#連線Oracle資料庫通過儲存過程操作資料庫

之前筆者一直用C#連線SQL Server資料庫。近期由於工作需要,需要用C#連線Oracle資料庫,並且要通過儲存過程,來操作資料庫中的資料,實現增、刪、改、查(有分頁功能)功能。並且,為了今後對資料庫擴充套件方便,對現在的程式碼改動最小的情況下,實現資料庫的平穩切換,必須

Java連線Oracle資料庫的三種連線方式

背景: 這兩天在學習Oracle資料庫,這裡就總結下自己上課所學的知識,同時記錄下來,方便整理當天所學下的知識,也同時方便日後自己查詢。 SQL語句的話,這裡我就不多講了,感覺和其他的資料庫(MySQL、SQL Server)都是類似,區別不大。 今天在這

C# 連線 Oracle 資料庫(三種方式:OracleClient、ODBC、OLEDB)

1、OracleClient //基於.NET 2.0,只有2.0中包含OracleClient using System; using System.Collections; using System.ComponentModel; using System.Data;

JDBC連線ORACLE資料庫的幾種方式

格式一: Oracle JDBC Thin using a Service_Name:    jdbc:oracle:thin:@//192.168.6.66:1521/rac  (資料庫的服務名Service_name:rac)    格式二: Oracle JDBC Th

Windows 7下通過Excel2007連線Oracle資料庫並對錶查詢

1. 環境變數的設定1.1  ORACLE_HOME環境變數的設定,我這裡指向了我的Oracle 10g的客戶端ORACLE_HOME=C:\oracle\product\10.2.0\client_21.2 TNS_ADMIN環境變數的設定,TNS_ADMIN目錄下需有tn

ASP.NET(C#) VS2010連線Oracle資料庫

    首先介紹個人環境:win7 + VS2010 + Oracle 11g Client (注意:我這裡只是安裝的client,如果安裝了整個資料庫也是可以的)  。     正題:    一.

.Net直連oracle資料庫連線池的配置

OS:64位win10。 VS:2017。 .NET:4.0。 Oracle 的dll檔案版本為12.2.0.1。 經過測試發現,需要將以下檔案拷貝到可執行檔案所在的目錄,或者可執行檔案能找到的目錄下即可:Oracle.DataAc

.NET 連線Oracle資料庫

AOD.NET是.NET框架中的一組類和工具的集合,可以用於建立強大的、靈活的和可靠地資料驅動的應用程式。它提供對Microsoft SQL Server、Oracle、Microsoft Access等資料來源以及通過OLE DB和XML公開的資料來源的

JSP通過JDBC連線ORACLE資料庫

<%@ page import="java.sql.*" %> <%@ page language="java" contentType="text/html; charset=ut

java中如何通過JDBC的方式連線sqlserver2005多例項資料庫

java語言中,通過jdbc訪問sqlserver2005資料庫預設例項可以按正常的寫法來建立url連線,程式碼如下: Connection cn = DriverManager.getConnection("jdbc:sqlserver://172.16.5.2:1433;