亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#連接Oracle數(shù)據(jù)庫使用Oracle.ManagedDataAccess.dll

 更新時間:2017年11月10日 09:39:07   作者:上青天攬月  
這篇文章主要介紹了C#使用Oracle.ManagedDataAccess.dll的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在剛接觸C#的時候由于公司使用的就是Oracle數(shù)據(jù)庫,那么C#怎么連接Oracle數(shù)據(jù)庫就成了首要去掌握的知識點了。在那時沒有ODP.NET,但visual studio卻對Oralce數(shù)據(jù)庫的調(diào)用進行了集成,就是下圖中的這個,盡管現(xiàn)在使用這個的時候visual studio提醒過時的,但在那時卻是非常好用的。

為什么現(xiàn)在visual studio中這個程序集依然能使用,有ODP.NET,單單要拿出Oracle.ManagedDataAccess.dll進行本文的重點呢?

1、visual studio中提醒過時,因為微軟和甲骨文存在數(shù)據(jù)庫的競爭關(guān)系,并且從.NET的更新來看這個程序集沒有再更新過,對于數(shù)據(jù)庫一直在更新而調(diào)用的程序集一直不更新敢用下去么?還有一個我認為非常重要的原因就是使用這個程序集,擺脫不了每一個運行程序的客戶機上都要去安裝Oracle客戶端的事實,試想一下,如果用戶數(shù)量巨大的時候,安裝客戶端的工作量就相當?shù)拇?,很耗費資源;

2、甲骨文后來出了ODP.NET,各種資料以及官網(wǎng)上都說需要安裝ODP.NET,然后引用Oracle.ManagedDataAccess.dll,他和visual studio中的程序集最大的區(qū)別在于會隨著數(shù)據(jù)庫更新,是oracle官方出的驅(qū)動;

3、其實經(jīng)過測試,ODP.NET的安裝完全是沒有必要的,直接在網(wǎng)上下載一個Oracle.ManagedDataAccess.dll,按如下方式引用即可,使用此種方式減少了ODP.NET的安裝,無視操作系統(tǒng)的位數(shù),最重要的是減少了Oracle客戶端的安裝;

那在哪里下載Oracle.ManagedDataAccess.dll呢?如果Oracle.ManagedDataAccess.dll有更新怎么知道呢?這個時候全宇宙最強大開發(fā)工具登場了!

安裝完成就可以擼代碼了,并且如果有更新可以隨時能看到。并且在編程方面和以前使用System.Data.OracleClient程序集沒有多大的不同,基本上拿以前使用System.Data.OracleClient程序集的代碼做少許的改動即可。

1、使用了連接字符串,而不是用oracle客戶端的服務名了;

2、幾個命名空間的變化;

下面是對數(shù)據(jù)庫常用操作的封裝

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using Oracle.ManagedDataAccess.Client;
using System.Data;
using System.IO;
using System.Collections;
using System.Diagnostics;
using Oracle.ManagedDataAccess.Types;

namespace OracleDemo
{
  public class OracleHelper
  {
    private static string connStr = "User Id=admin;Password=123;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=test)))";

    #region 執(zhí)行SQL語句,返回受影響行數(shù)
    public static int ExecuteNonQuery(string sql, params OracleParameter[] parameters)
    {
      using (OracleConnection conn = new OracleConnection(connStr))
      {
        conn.Open();
        using (OracleCommand cmd = conn.CreateCommand())
        {
          cmd.CommandText = sql;
          cmd.Parameters.AddRange(parameters);
          return cmd.ExecuteNonQuery();
        }
      }
    }
    #endregion
    #region 執(zhí)行SQL語句,返回DataTable;只用來執(zhí)行查詢結(jié)果比較少的情況
    public static DataTable ExecuteDataTable(string sql, params OracleParameter[] parameters)
    {
      using (OracleConnection conn = new OracleConnection(connStr))
      {
        conn.Open();
        using (OracleCommand cmd = conn.CreateCommand())
        {
          cmd.CommandText = sql;
          cmd.Parameters.AddRange(parameters);
          OracleDataAdapter adapter = new OracleDataAdapter(cmd);
          DataTable datatable = new DataTable();
          adapter.Fill(datatable);
          return datatable;
        }
      }
    }
    #endregion
  }
}

以下代碼是調(diào)用部分

 string sqlString = "Select a.col1,a.col2 From test a Where a.id=:id";
 DataTable dt = OracleHelper.ExecuteDataTable(sqlString,new OracleParameter(":id",1));

程序編寫完成,生成完成后,目錄大概如下:

這時候拷貝Debug文件夾到目標客戶電腦上即可直接運行了(前提是目標客戶電腦上有.NET Framework),完全擺脫安裝Oracle客戶端。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • c# 組合模式

    c# 組合模式

    組合模式:將對象組合成樹形結(jié)構(gòu)以表示‘部分-整體’的層次結(jié)構(gòu)。組合模式使得用戶對單個對象和組合對象的使用具有一致性。需求中式體現(xiàn)部分與整體層次的結(jié)構(gòu)時,統(tǒng)一地使用組合對象中的所有對象時,應該考慮使用組合模式
    2012-10-10
  • C#異常處理的一些經(jīng)驗和技巧

    C#異常處理的一些經(jīng)驗和技巧

    本文是異常處理經(jīng)驗性的文章,其實跟C#關(guān)系也不大。比較適合剛剛熟悉異常語法,而缺乏實戰(zhàn)的讀者。當然,經(jīng)驗老練的讀者也可指出不足、給予意見、補充說明,一起完善文章,分享更多知識與經(jīng)驗
    2014-03-03
  • C#實現(xiàn)語音播報功能

    C#實現(xiàn)語音播報功能

    這篇文章主要為大家詳細介紹了C#實現(xiàn)語音播報功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C#微信公眾號開發(fā)之自定義菜單

    C#微信公眾號開發(fā)之自定義菜單

    這篇文章介紹了C#微信公眾號開發(fā)之自定義菜單,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • 英語單詞state與status的區(qū)別

    英語單詞state與status的區(qū)別

    state傾向于condition,是一種延續(xù)性的狀態(tài)。status常用于描述一個過程中的某階段(phase),類似于C語言中枚舉型變量某一個固定的值,這個值屬于一個已知的集合。這篇文章主要介紹了英語單詞state與status的區(qū)別,需要的朋友可以參考下
    2016-11-11
  • C#如何通過匿名類直接使用訪問JSON數(shù)據(jù)詳解

    C#如何通過匿名類直接使用訪問JSON數(shù)據(jù)詳解

    這篇文章主要給大家介紹了關(guān)于C#如何通過匿名類直接使用訪問JSON數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起看看吧。
    2018-02-02
  • C#中私有構(gòu)造函數(shù)的特點和用途實例解析

    C#中私有構(gòu)造函數(shù)的特點和用途實例解析

    這篇文章主要介紹了C#中私有構(gòu)造函數(shù)的特點和用途,需要的朋友可以參考下
    2014-08-08
  • C#自定義簽名章實現(xiàn)方法

    C#自定義簽名章實現(xiàn)方法

    這篇文章主要介紹了C#自定義簽名章實現(xiàn)方法,涉及C#圖形繪制的相關(guān)實現(xiàn)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-08-08
  • C#調(diào)用python腳本的方法詳解

    C#調(diào)用python腳本的方法詳解

    這篇文章主要為大家詳細介紹了C#調(diào)用python腳本的方法,文中通過示例代碼介紹的非常詳細,感興趣的朋友們下面隨著小編來一起學習學習吧
    2023-11-11
  • 一個狀態(tài)機的實現(xiàn)

    一個狀態(tài)機的實現(xiàn)

    本文主要介紹了C#實現(xiàn)一個狀態(tài)機的思路與方法,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02

最新評論