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 = ;
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 = ;
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();
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 = ;
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 = ;
ocmd.CommandText = cmdText;
ocmd.CommandTimeout = ;
reader = ocmd.ExecuteReader();
dt.Load(reader);
reader.Dispose();
}
catch (Exception ex)
{
throw new Exception(ex.Message.ToString().Trim());
}
return dt;
}
}
}

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数据库了。

电脑上不安装Oracle时,C# 调用oracle数据库,Oracle客户工具的更多相关文章

  1. 安装站点时出现“连接数据库出现数据库server或登录password无效,无法连接数据库,请又一次设定”解决方法

    在安装站点时出现  "连接数据库出现数据库server或登录password无效,无法连接数据库,请又一次设定"  可是数据库username和password是正确的,在serv ...

  2. 电脑上不安装Oracle时,C# 调用oracle数据库,Oracle客户工具 【转载】

    http://www.cnblogs.com/jiekzou/p/5047850.html Oracle的安装包通常都比较大,安装又比较费时,而且如果安装过程中不幸出错,各种蛋疼,即便是安装过N遍的老 ...

  3. 一台电脑上同时安装python2和python3

    被python2的编码问题整的快晕了,python3对编码问题解决的不错 所以想安装下python3,但由于目前企业大多还是用python2,所以不想卸载2,让python2和python3共存. 本 ...

  4. 在同一台电脑上同时安装Python2和Python3

    目前Python的两个版本Python2和Python3同时存在,且这两个版本同时在更新与维护. 到底是选择Python2还是选择Python3,取决于当前要使用的库.框架支持哪个版本. 例如:HTM ...

  5. 在windows系统电脑上同时安装python2.x和python3.x版本

    在同一个电脑机子(windows系统)上安装同时安装python2.x和python3.x版本. 一.python2.x和python3.x安装 步骤1:在python官网(https://www.p ...

  6. Ubuntu Server 上在安装Nginx时执行./confgiure后提示:C compiler cc is not found

    场景 Ubuntu Server 16.04 LTS上怎样安装下载安装Nginx并启动: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detai ...

  7. 使用C#检测电脑上是否安装某软件

    private void button2_Click(object sender, EventArgs e) { try { string app = "chrome.exe"; ...

  8. 在同台电脑上再次安装MySql需要注意的事项

    今天安装了一下mysql,出现的问题主要是在最后一步: msyql 安装到最后一步 start service 错误解决方法 1, 到控制面板里面先把 mysql 删除 . 2. 到 c 盘 C:\P ...

  9. Mac电脑上一款非常时尚高清的动态壁纸Living Wallpaper HD

    很多朋友Mac电脑上都喜欢用动态壁纸,Living Wallpaper HD是本人尝试的一款非常不错的高清动态壁纸.有时钟.天气等各种组建,非常时尚美观. Living Wallpaper HD下载地 ...

随机推荐

  1. MongoDB 聚合操作

    在MongoDB中,有两种方式计算聚合:Pipeline 和 MapReduce.Pipeline查询速度快于MapReduce,但是MapReduce的强大之处在于能够在多台Server上并行执行复 ...

  2. Sql Server系列:运算符和表达式

    运算符的一些符号,他们能够用于执行算术运算.字符串连接.赋值以及在字段.常量和变量之间进行比较.在SQL Server 2012中,运算符主要由以下6大类:算术运算符.赋值运算符.比较运算符.逻辑运算 ...

  3. .NET足球赛事资料数据库平台SmartLottery开源发布——全球足球联赛应有尽有

            本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 前2个月,我的系列文 ...

  4. 《ASP.NET Web API 2框架揭秘》样章(PDF版本)

    <ASP.NET Web API 2框架揭秘>(详情请见<新作<ASP.NET Web API 2框架揭秘>正式出版>)以实例演示的方式介绍了很多与ASP.NET ...

  5. 关于SubSonic3.0未处理InvalidOperationException异常(关键字TOP附近有语法错误)的处理

    早上在测试程序时,使用了Top这个属性,没想到马上抛出了个“未处理InvalidOperationException异常(关键字'TOP'附近有语法错误)”这个错误提示,见下图: 然后Debug一下, ...

  6. 分享个刚写好的 android 的 ListView 动态加载类,功能全而代码少。

    (转载声明出处:http://www.cnblogs.com/linguanh/) 简介:      该ListView 实现动态加载数据,为了方便用户充分地自定义自己的数据源.点击事件,等核心操作, ...

  7. opencv 之 icvCreateHidHaarClassifierCascade 分类器信息初始化函数部分详细代码注释。

    请看注释.这个函数,是人脸识别主函数,里面出现过的函数之一,作用是初始化分类器的数据,就是一个xml文件的数据初始化. static CvHidHaarClassifierCascade* icvCr ...

  8. UML中的六大关系(转)

    UML定义的关系主要有六种:依赖.继承.关联.实现.聚合和组合.这些类间关系的理解和使用是掌握和应用UML的关键,而也就是这几种关系,往往会让初学者迷惑.这里给出这六种主要UML关系的说明和类图描述, ...

  9. matlab基础教程——根据Andrew Ng的machine learning整理

    matlab基础教程--根据Andrew Ng的machine learning整理 基本运算 算数运算 逻辑运算 格式化输出 小数位全局修改 向量和矩阵运算 矩阵操作 申明一个矩阵或向量 快速建立一 ...

  10. js实现无限极分类

    转载注明出处!!! 转载注明出处!!! 转载注明出处!!! 因为要实现部门通讯录,后台传来的数据是直接从数据库里拿的部门表,所以没有层级分类,只有parentId表示从属关系,所以分类的事情就交给我来 ...