程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 電腦上不安裝Oracle時,C# 調用oracle數據庫,Oracle客戶工具,

電腦上不安裝Oracle時,C# 調用oracle數據庫,Oracle客戶工具,

編輯:Oracle教程

電腦上不安裝Oracle時,C# 調用oracle數據庫,Oracle客戶工具,


Oracle的安裝包通常都比較大,安裝又比較費時,而且如果安裝過程中不幸出錯,各種蛋疼,即便是安裝過N遍的老手,有時候安裝起來也覺得挺煩。而工作中,通常服務器上面安裝oracle就可以了,我們本地電腦只需要安裝一個oracle客戶端,然後連接到服務器就可以了。

Oracle 輕量級客戶端我推薦使用Navicat For Oracle,只有17M。

1、下載以下幾個dll,我這裡使用的是oracle11g,這幾個DLL的下載地址:http://pan.baidu.com/s/1kU1JafX

2、將其拷貝到項目中,設置dll屬性為“復制到輸出目錄”為“始終復制”

3、項目中添加Oracle.DataAccess.dll的引用

4、創建oracle操作類ORacleDBHelp

/* ============================================================================== * 功能描述:ORacleDBHelp * 創 建 者:Zouqj * 創建日期:2015/9/9 14:30:22 ==============================================================================*/ using System; using System.Collections.Generic; using System.Text; using System.Configuration; using System.Data; using System.Threading; using System.Transactions; using Oracle.DataAccess.Client; using Oracle.DataAccess.Types; using Oracle.DataAccess; using DBHelper.Interface; namespace DBHelper { public class ORacleDBHelp : ITransDB { private static OracleConnection conn; private bool IsTran = false; private OracleConnection TranConn; private OracleCommand cmd; private OracleTransaction Transaction; #region 事務處理方法 /// <summary> /// 開啟全局事務處理 /// </summary> public void BeginTransaction() { TranConn = new OracleConnection(ConfigurationManager.ConnectionStrings["OracleConnection"].ConnectionString); if (TranConn.State == ConnectionState.Closed) { TranConn.Open(); } Transaction = TranConn.BeginTransaction(); cmd = new OracleCommand("", TranConn); cmd.CommandTimeout = 600; IsTran = true; } /// <summary> /// 提交全局事務處理 /// </summary> public void Commit() { cmd.Transaction.Commit();//事務提交 Transaction.Dispose(); cmd.Dispose(); TranConn.Close(); TranConn.Dispose(); } /// <summary> /// 回滾全局事務處理 /// </summary> public void Rollback() { if (IsTran) { cmd.Transaction.Rollback();//事務回滾 Transaction.Dispose(); cmd.Dispose(); TranConn.Close(); TranConn.Dispose(); } } /// <summary> /// 執行不帶參數sql語句,返回所影響的行數 /// </summary> /// <param name="cmdstr">增,刪,改sql語句</param> /// <returns>返回所影響的行數</returns> public int TranExecuteNonQuery(string cmdText) { int count; try { cmd.CommandText = cmdText; cmd.CommandTimeout = 600; if (cmd.Connection.State == ConnectionState.Closed) { cmd.Connection.Open(); } count = cmd.ExecuteNonQuery(); } catch (Exception ex) { throw new Exception(ex.Message.ToString().Trim()); } return count; } #endregion #region 建立數據庫連接對象 /// <summary> /// 建立數據庫連接 /// </summary> /// <returns>返回一個數據庫的連接OracleConnection對象</returns> public static OracleConnection init() { try { if (conn == null) { conn = new OracleConnection(ConfigurationManager.ConnectionStrings["OracleConnection"].ToString().Trim()); } if (conn.State != ConnectionState.Open) { conn.Open(); } } catch (Exception e) { try { Thread.Sleep(5000); conn = new OracleConnection(ConfigurationManager.ConnectionStrings["OracleConnection"].ToString().Trim()); if (conn.State != ConnectionState.Open) { conn.Open(); } } catch (Exception) { throw new Exception(e.Message.ToString().Trim()); } } return conn; } #endregion /// <summary> /// 執行不帶參數sql語句,返回所影響的行數 /// </summary> /// <param name="cmdstr">增,刪,改sql語句</param> /// <returns>返回所影響的行數</returns> public static int ExecuteNonQuery(string cmdText) { int count; OracleCommand ocmd = null; try { init(); ocmd = new OracleCommand("", conn); ocmd.CommandTimeout = 600; ocmd.CommandText = cmdText; count = ocmd.ExecuteNonQuery(); } catch (Exception ex) { throw new Exception(ex.Message.ToString().Trim()); } return count; } /// <summary> /// 執行不帶參數sql語句,返回一個從數據源讀取數據的OracleDataReader對象 /// </summary> /// <param name="cmdstr">相應的sql語句</param> /// <returns>返回一個從數據源讀取數據的OracleDataReader對象</returns> public static DataTable GetDataTable1(string cmdText) { OracleDataReader reader; OracleCommand ocmd = null; DataTable dt = new DataTable(); try { init(); ocmd = new OracleCommand("", conn); ocmd.CommandTimeout = 600; ocmd.CommandText = cmdText; ocmd.CommandTimeout = 600; reader = ocmd.ExecuteReader(); dt.Load(reader); reader.Dispose(); } catch (Exception ex) { throw new Exception(ex.Message.ToString().Trim()); } return dt; } } } View Code

ITransDB接口

/* ==============================================================================
   * 功能描述:ITransDB  
   * 創 建 者:Zouqj
   * 創建日期:2015/9/9 14:31:32
   ==============================================================================*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DBHelper.Interface
{
    public interface ITransDB
    {
        void BeginTransaction();
        int TranExecuteNonQuery(string sql);
        void Commit();
        void Rollback();
    }
}

現在可以通過C#來直接調用oracle操作了。

接下來,通過Oracle客戶端連接到Oracle服務器

安裝完Navicat For Oracle後,我們電腦上面沒有安裝oracle,將下載的dll拷貝到Navicat For Oracle的安裝目錄,我電腦上面是:D:\Program Files (x86)\PremiumSoft\Navicat for Oracle\instantclient_10_2\

然後配置Navicat For Oracle,“工具”——“選項”

這個時候,Navicat For Oracle就可以連接服務器上面的Oracle數據庫了。

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