Oracle数据访问组件ODAC(Oracle Data Access Components)安装和使用
1.ODAC 下载方法和安装和教程
在window 应用程序中访问,访问oracle就可以不用安装oracle client了,直接设定tns name 可访问数据库。同时,我又编定了一个操作oracel数据库帮助类,供大家参考
1.1. 下载路径
1.1.1 32位下载路径
下载网址:https://www.oracle.com/database/technologies/odac-nuget-downloads.html
1.1.2 64位下载路径
下载网址:https://www.oracle.com/database/technologies/odac-downloads.html
1.2 安装教程
1.2.1 :直接查看压缩包中 readme.htm安装方法
1.2.1. 或者按如下网络上的教程进行安装
https://www.cnblogs.com/wayne-ivan/p/4691091.html
1.2.3 Oracle官网查询相关ODC的资料,列出相关资源和文件
注:1. 安装时必须有管理员权限;2.在安装过程中如有什么错误,请安装路径下查看log档,进行异常处理。
2. 在应用程序中引用
2.1 配件文件中使用如下所示 Provider=OraOLEDB.Oracle 的驱动来读取数据库
<add key="DatabaseP1" value="Provider=OraOLEDB.Oracle;Data Source=DB1;User ID=DBA;Password=DBA;Persist Security Info=True"/>
2.2 程序中引用命名空间 using Oracle.DataAccess;
2.3 访问数据实例
可发根据设定Provider来设定相应数据库的驱动,可以实现连接MY SQL ,MS SQL,ORACEL等数据库操作
string connString = "Provider=OraOLEDB.Oracle.1;User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RACE)))";
OleDbConnection conn = new OleDbConnection(connString);
try
{conn.Open();MessageBox.Show(conn.State.ToString());
}
catch (Exception ex)
{ShowErrorMessage(ex.Message.ToString());
}
finally
{conn.Close();
}
2.4 操作数据库帮助类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Configuration;
using System.Data.OleDb;/// <summary>/// SqlDbHelper ,以System.Data.OleDb類來操作數據庫/// </summary>public class OleDbHelper{public string strMsg = "";public OleDbConnection conn;/// <summary>/// SqlDbHelper ,以System.Data.OleDb類來操作數據庫/// </summary>public OleDbHelper(){//// TODO: 在此加入建構函式的程式碼////this.GetConn();}public OleDbHelper(String sDbConnString){this.GetConn(sDbConnString);}/// <summary>/// 是否打开数据库连接/// </summary>/// <param name="IsOpenConn"></param>public OleDbHelper(Boolean IsOpenConn){//// TODO: 在此加入建構函式的程式碼//if (IsOpenConn){this.GetConn();}}public string Message{get{return strMsg;}set{strMsg = value;}}public OleDbConnection Connection{set { conn = value; }get { return conn; }}/// <summary>/// Get DB conncection string from web.config file./// By OleDbConnString /// </summary>/// <returns></returns>public string GetConnectString(){string strConn = "";try{//Get DB conncection string from web.config file.strConn = "";}catch (Exception ex){this.Message = ex.Message;}return strConn;}/// <summary>/// 取得Sqlcle数据库存连接,需在web.config中的appSetting处设定连接字符串 /// MsAccessDbConnString的DB连接字符串 /// </summary>/// <returns></returns>public OleDbConnection GetConn(){string strConn;string strDataSource;string strDataFile;OleDbConnection Conn = new OleDbConnection();try{//Get DB conncection string from web.config file.strDataFile =(System.Environment.CurrentDirectory+@"/db/data.mdb");strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strDataFile;Conn.ConnectionString = strConn;Conn.Open();//增加属性this.Connection = Conn;return Conn;}catch (Exception ex){this.Message = ex.Message + ex.StackTrace + ex.Source;return null;}}/// <summary>/// 取得Access数据库存连接,/// 需在web.config中的appSetting处设定连接字符串sSqlDbConnString Key的值/// </summary>/// <param name="sSqlDbConnString">在web.config中的appSetting处设定连接字符串名稱</param>/// <returns></returns>public OleDbConnection GetConn(string sSqlDbConnString){string strConn;string strDataFile = "";string strDataSource = "";OleDbConnection Conn = new OleDbConnection();try{//Get DB conncection string from web.config file.Conn.ConnectionString = sSqlDbConnString;Conn.Open();return Conn;}catch (Exception ex){this.Message = ex.Message + ex.Source + ex.StackTrace;return null;}}/// <summary>/// 取得Sqlcle数据库存连接/// </summary>/// <param name="sTNSName">连接SqlCLE的tnsname</param>/// <param name="sUserId">用户名</param>/// <param name="sPassword">密码</param>/// <returns></returns>public OleDbConnection GetConn(string sServerName, string sDataBaseName, string sUserId, string sPassword){string strConn;try{OleDbConnection Conn = new OleDbConnection();strConn = "Provider=SQLOLEDB;server=" + sServerName + ";database=" + sDataBaseName + ";uid=" + sUserId + ";pwd=" + sPassword;Conn.ConnectionString = strConn;Conn.Open();return Conn;}catch{return null;}}/// <summary>/// 打开数据库,在WebConfig中对应的appSettings Key值/// </summary>/// <param name="sSqlDbConnString"></param>/// <returns></returns>public Boolean OpenConnKey(string sSqlDbConnString){string strConn;try{OleDbConnection Conn = new OleDbConnection();//Get DB conncection string from web.config file.strConn = "";Conn.ConnectionString = strConn;Conn.Open();this.Connection = Conn;return true;}catch (Exception ex){this.Message = ex.Message;return false;}}/// <summary>/// 打开连接字符串/// </summary>/// <param name="sSqlDbConnString"></param>/// <returns></returns>public Boolean OpenConnString(string sDbConnString){OleDbConnection Conn = new OleDbConnection();try{Conn.ConnectionString = sDbConnString;Conn.Open();this.Connection = Conn;return true;}catch (Exception ex){this.Message = ex.Message;return false;}}/// <summary>/// 取得数据集/// </summary>/// <param name="strSQL"></param>/// <param name="Conn"></param>/// <returns></returns>public DataSet GetDataSet(string strSQL, OleDbConnection Conn){OleDbDataAdapter Adpter;DataSet ds;try{//strSQL = "select * from t_PublicInfo ";Adpter = new OleDbDataAdapter(strSQL, Conn);ds = new DataSet();Adpter.Fill(ds, "table1");}catch{return null;}return ds;}/// <summary>/// 得到数据集,Webconfig add设定的的Key值/// </summary>/// <param name="strSQL"></param>/// <param name="sConnString">Webconfig add设定的的Key值</param>/// <returns></returns>public DataSet GetDataSet(string strSQL, string sConnString){OleDbDataAdapter Adpter;DataSet ds;OleDbConnection conn = new OleDbConnection();try{conn = this.GetConn(sConnString);//strSQL = "select * from t_PublicInfo ";Adpter = new OleDbDataAdapter(strSQL, conn);ds = new DataSet();Adpter.Fill(ds, "table1");}catch (Exception ex){this.Message = ex.Message;return null;}finally{conn.Close();conn.Dispose();}return ds;}/// <summary>/// 取得数据集,默認連接的數據庫存是在web.config中的appSetting处设定连接字符串SqlDbConnString/// </summary>/// <param name="strSQL"></param>/// <returns></returns>public DataSet GetDataSet(string strSQL){//string strSQL;OleDbDataAdapter Adpter;DataSet ds;OleDbConnection Conn = new OleDbConnection();Conn = GetConn();if (Conn == null){return null;}try{Adpter = new OleDbDataAdapter(strSQL, Conn);ds = new DataSet();Adpter.Fill(ds, "table1");}catch (Exception ex){this.Message = ex.Message;return null;}finally{conn.Close();}return ds;}/// <summary>/// 取得DataReader,默認連接的數據庫存是在web.config中的appSetting处设定连接字符串SqlDbConnString/// </summary>/// <param name="strSQL"></param>/// <returns></returns>public OleDbDataReader GetReader(string strSQL){//OleDbDataAdapter Adpter;OleDbDataReader oReader;OleDbConnection Conn = new OleDbConnection();OleDbCommand oComm = new OleDbCommand();Conn = GetConn();oComm.Connection = Conn;oComm.CommandText = strSQL;try{oReader = oComm.ExecuteReader();}catch{return null;}return oReader;}/// <summary>/// 取得DataReader/// </summary>/// <param name="strSQL"></param>/// <param name="oConn"></param>/// <returns></returns>public OleDbDataReader GetReader(string strSQL, OleDbConnection oConn){//OleDbDataAdapter Adpter;OleDbDataReader oReader;OleDbCommand oComm = new OleDbCommand();oComm.Connection = oConn;oComm.CommandText = strSQL;try{oReader = oComm.ExecuteReader();}catch{return null;}return oReader;}/// <summary>/// 得到一张表,根据SQL语句,如果沒有找到資料,連接正確,行個數為0,如果連接異常的,返回為空/// </summary>/// <param name="strSql"></param>/// <returns></returns>public DataTable GetDataTable(string strSql){OleDbDataAdapter Adpter;DataSet ds;DataTable dtTable = new DataTable();OleDbConnection Conn = new OleDbConnection();Conn = this.GetConn();if (Conn == null){return dtTable;}try{Adpter = new OleDbDataAdapter(strSql, Conn);ds = new DataSet();Adpter.Fill(ds, "table1");dtTable = ds.Tables[0];this.Message = "";}catch (Exception ex){this.Message = ex.Message + ex.StackTrace;}finally{conn.Close();}return dtTable;}public DataTable GetDataTable(string strSql, string sConnStringKey){OleDbDataAdapter Adpter;DataSet ds;DataTable dtTable = new DataTable();OleDbConnection myConn = new OleDbConnection();myConn = this.GetConn(sConnStringKey);if (myConn == null){return dtTable;}try{Adpter = new OleDbDataAdapter(strSql, myConn);ds = new DataSet();Adpter.Fill(ds, "table1");dtTable = ds.Tables[0];this.Message = "";}catch (Exception ex){this.Message = ex.Message + ex.StackTrace;}finally{myConn.Close();}return dtTable;}/// <summary>/// 执行 sql command/// </summary>/// <param name="strSQL"></param>/// <param name="Conn"></param>/// <returns></returns>public string ExecuteNonQuery(string strSQL, OleDbConnection Conn){OleDbCommand Cmd = new OleDbCommand();Cmd.CommandType = CommandType.Text;Cmd.CommandText = strSQL;Cmd.Connection = Conn;Cmd.Transaction = Conn.BeginTransaction();try{Cmd.ExecuteNonQuery();Cmd.Transaction.Commit();return "";}catch (Exception Err){Cmd.Transaction.Rollback();return Err.Message;}finally{Cmd.Dispose();}}/// <summary>/// 执行 sql command,默認連接的數據庫存是在web.config中的appSetting处设定连接字符串SqlDbConnString/// </summary>/// <param name="strSQL"></param>/// <returns></returns>public Boolean ExecuteNonQuery(string strSQL){OleDbConnection Conn = new OleDbConnection();Conn = GetConn();OleDbCommand Cmd = new OleDbCommand();Cmd.CommandType = CommandType.Text;Cmd.CommandText = strSQL;Cmd.Connection = Conn;Cmd.Transaction = Conn.BeginTransaction();try{Cmd.ExecuteNonQuery();Cmd.Transaction.Commit();return true;}catch (Exception Err){Cmd.Transaction.Rollback();this.Message = Err.Message + ";" + strSQL;return false;}finally{Cmd.Dispose();conn.Close();}}public Boolean ExecuteNonQuery(string strSQL, string sConnStringKey){OleDbConnection myConn = new OleDbConnection();myConn = GetConn(sConnStringKey);OleDbCommand myCommand = new OleDbCommand();myCommand.CommandType = CommandType.Text;myCommand.CommandText = strSQL;myCommand.Connection = myConn;myCommand.Transaction = myConn.BeginTransaction();try{myCommand.ExecuteNonQuery();myCommand.Transaction.Commit();return true;}catch (Exception Err){myCommand.Transaction.Rollback();this.Message = Err.Message + ";" + strSQL;return false;}finally{myCommand.Dispose();myConn.Close();}}/// <summary>/// 得到一张表,根据SQL语句,如果沒有找到資料,連接正確,行個數為0,如果連接異常的,返回為空/// </summary>/// <param name="strSql"></param>/// <returns></returns>public Boolean GetExistsData(string strSql){Boolean bResult = false;OleDbDataAdapter Adpter;DataSet ds;DataTable dtTable = new DataTable();OleDbConnection Conn = new OleDbConnection();Conn = this.GetConn();if (Conn == null){return false;}try{Adpter = new OleDbDataAdapter(strSql, Conn);ds = new DataSet();Adpter.Fill(ds, "table1");dtTable = ds.Tables[0];if (dtTable.Rows.Count > 0){bResult = true;}}catch (Exception ex){this.Message = ex.Message + ex.StackTrace;bResult = false;}return bResult;}public Boolean GetExistsData(string strSql, string sConnStringKey){Boolean bResult = false;OleDbDataAdapter Adpter;DataSet ds;DataTable dtTable = new DataTable();OleDbConnection Conn = new OleDbConnection();//Conn = this.GetConn();Conn = this.GetConn(sConnStringKey);if (Conn == null){return false;}try{Adpter = new OleDbDataAdapter(strSql, Conn);ds = new DataSet();Adpter.Fill(ds, "table1");dtTable = ds.Tables[0];if (dtTable.Rows.Count > 0){bResult = true;}}catch (Exception ex){this.Message = ex.Message + ex.StackTrace;bResult = false;}return bResult;}public void Close(){if (this.Connection.State == ConnectionState.Open){this.Connection.Close();}}}
Oracle数据访问组件ODAC(Oracle Data Access Components)安装和使用相关推荐
- bde怎么配置oracle数据库,Oracle数据访问组件ODAC教程:如何从BDE和DOA迁移
ODAC(Oracle Data Access Components )是一个Oracle数据访问组件.ODAC可以为Oracle提供本地连接(Delphi, Delphi for .NET, C++ ...
- WIN7系统 64位出现 Net Framework 数据提供程序要求 Microsoft Data Access Components(MDAC)....
WIN7系统 64位出现 Net Framework 数据提供程序要求 Microsoft Data Access Components(MDAC).请安装 Microsoft Data Acces ...
- .Net Framework OleDb 数据提供程序要求 Microsoft Data Access Components(MDAC) 2.6 或更高版本。发现当前安装的版本是 2.50.4403.
问题: .Net Framework OleDb 数据提供程序要求 Microsoft Data Access Components(MDAC) 2.6 或更高版本.发现当前安装的版本是 2.50. ...
- .Net Framework OleDb 数据提供程序要求 Microsoft Data Access Components(MDAC) 2.6 或更高版本
(1)方法一 修改注册表 HKEY_LOCAL_MACHINE\Software\Microsoft\DataAccess下所有键值为2.50.4403.12为2.71.9040.2 我测 ...
- 转:Firebird 数据访问组件 (Delphi)
转自:http://www.faceker.com/200809/firebird-data-access-components.html 在 Delphi 下可访问 Firebird 数据库的组件非 ...
- sqlsugar mysql连接字符串_通用数据访问组件UniDAC最新版本v8.2.4,支持Lazarus中的macOS 64位...
UniDAC(Universal Data Access Components)是一款通用数据库访问组件,提供了多个数据库的直接访问,如针对Windows的Delphi, C++Builder, La ...
- Delphi10.4使用FireDAC数据访问组件开发数据库软件学习开发教程(1)
数据库访问是Delphi / C ++ Builder的专长.最新版本的Delphi / C ++ Builder支持使用称为FireDAC的通用数据库访问组件访问各种数据源.因此,在此博客中,我将向 ...
- 测试 ClownFish、CYQ、Entity Framework、Moon、MySoft、NHibernate、PDF、XCode数据访问组件性能...
下期预告: 由于很多园友反馈,有的组件不应该缺席.测试复杂度不够.测试还缺乏一定的公平. 因此考虑在下一个版本中,确保在更加公平的前提下进行更高复杂度的测试 . 同时将分为2组测试,纯SQL组件及纯O ...
- 微软提供的数据访问组件SqlHelper
数据访问组件是一组通用的访问数据库的代码,在所有项目中都可以用,一般不需要修改.本节使用的是Microsoft提供的数据访问助手,其封装很严密,且应用简单. 首先要先添加一个类,并命名为SqlHelp ...
- idata 数据访问组件库 (2021版)
idata数据访问组件库(RX11)版本: 2022-09-20 下载: idata 数据组件库 for RAD Studio RX10.3.x (260) 发布于:2020-02-20 使用 ...
最新文章
- applicationContext.xml 配置文件的存放位置
- SQL 异常处理 Begin try end try begin catch end catch--转
- CentOS 6.2 Eclipse CDT 开发环境搭建
- pyhton的切片操作
- 解决使用七牛CDN导致AJAX评论报错{“ERROR”:”GET FROM IMAGE SOURCE FAILED: E405″}
- [Inferior 1 (process 17260) exited normally] Debugger finished with status 0
- 脚本自动ping检测网络情况
- 三菱FX5U程序,双FX5U80MT主从站控制,普洛菲斯触摸屏程序,搭配三菱伺服,松下变频器控制运动控制数轴运动控制
- python二级考点
- 在php中将Unicode字符转成中文
- [转载]历上最强的音乐播放器(jetAudio-8.0.5.320-Plus-VX
- java(Vue+SpringBoot)实现头像上传功能
- windows server 2012 下载中文语言包
- 别怕,遇到Map源码面试题这样答就对了
- 林大OJ习题 2020年1月5日
- RT-Thread改变打印串口(在BSP的基础上添加其他功能)
- 关于Houdini中体积SDF,fog,volume,vdb的一些理解和区别
- 关于静态文本框透明度的问题
- 关于strcmp与strcpy函数的相关用法
- 實戰案例:微信公眾號篇 (1) 前言