国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#連接Oracle數據庫使用Oracle.ManagedDataAccess.dll

2019-10-29 21:09:01
字體:
來源:轉載
供稿:網友

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

C#連接Oracle數據庫,C#,Oracle.ManagedDataAccess.dll,引用dll

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

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

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

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

C#連接Oracle數據庫,C#,Oracle.ManagedDataAccess.dll,引用dll

C#連接Oracle數據庫,C#,Oracle.ManagedDataAccess.dll,引用dll

C#連接Oracle數據庫,C#,Oracle.ManagedDataAccess.dll,引用dll

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

C#連接Oracle數據庫,C#,Oracle.ManagedDataAccess.dll,引用dll

C#連接Oracle數據庫,C#,Oracle.ManagedDataAccess.dll,引用dll

C#連接Oracle數據庫,C#,Oracle.ManagedDataAccess.dll,引用dll

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

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

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

下面是對數據庫常用操作的封裝

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 執行SQL語句,返回受影響行數    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 執行SQL語句,返回DataTable;只用來執行查詢結果比較少的情況    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  }}

以下代碼是調用部分

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

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

C#連接Oracle數據庫,C#,Oracle.ManagedDataAccess.dll,引用dll

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彭阳县| 哈密市| 阆中市| 安康市| 宁强县| 阳谷县| 惠水县| 宜章县| 明溪县| 镇沅| 清镇市| 北海市| 资溪县| 奉节县| 屏边| 曲阜市| 西青区| 齐齐哈尔市| 福贡县| 长岭县| 卢龙县| 开平市| 乐至县| 广昌县| 麻江县| 南陵县| 佛坪县| 崇礼县| 筠连县| 乌拉特前旗| 华安县| 德令哈市| 喀喇| 西峡县| 密云县| 绵阳市| 崇阳县| 布尔津县| 社旗县| 鹿泉市| 蓬莱市|