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. TODO:Linux安装PHP MongoDB驱动

    TODO:Linux安装PHP MongoDB驱动 PHP利于学习,使用广泛,主要适用于Web开发领域. MongoDB的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统 ...

  2. Atitit  补充说明 sql知识图谱与线路图attilax总结补充说明

    Atitit  补充说明 sql知识图谱与线路图attilax总结补充说明 1. 常见编程语言的分类  :命令式语言.函数式语言.逻辑语言1 1.1. 按照编程语言的代际划分,又2gl,3gl,4gl ...

  3. Highchart.js

    Highcharts所有的源代码及例子均可通过官网下载得到.初学者只需要简单的修改官方提供的例子即可了解Highcharts. 下载 最新版本:Highcharts 3.0.10.Highstock ...

  4. 【夔堂】:程序血泪史之——有一种垃圾语言叫做JavaScript

    "Prototype"机制是个半成品OOP,有些文章说这玩意当初为了"简单(编写).容易(学习)"而发明的,但web前端技术发展到今天我们看到,JS显然是需要O ...

  5. KnockoutJS 3.X API 第六章 组件(5) 高级应用组件加载器

    无论何时使用组件绑定或自定义元素注入组件,Knockout都将使用一个或多个组件装载器获取该组件的模板和视图模型. 组件加载器的任务是异步提供任何给定组件名称的模板/视图模型对. 本节目录 默认组件加 ...

  6. OpenCascade Primitives BRep-Torus

    OpenCascade Primitives BRep-Torus eryar@163.com Abstract. BRep is short for Boundary Representation. ...

  7. Android 设置对话框全屏

    1.在styles.xml中添加一个style: <style name="Dialog_Fullscreen"> <item name="androi ...

  8. 前端工程师技能之photoshop巧用系列第三篇——切图篇

    × 目录 [1]切图信息 [2]切图步骤 [3]实战 前面的话 前端工程师除了使用photoshop进行测量之外,更重要的是要使用该软件进行切图.本文是photoshop巧用系列的第三篇——切图篇 切 ...

  9. lintcode二叉树的锯齿形层次遍历 (双端队列)

    题目链接: http://www.lintcode.com/zh-cn/problem/binary-tree-zigzag-level-order-traversal/ 二叉树的锯齿形层次遍历 给出 ...

  10. xUnit安装及注意事项

    前言 对于单元测试,想必大家都已再熟悉不过了,同时单元测试的重要性也越发突出,在招聘中也特别强调单元测试,但是对于微软内置的单元测试还是太过于繁琐,于是都在寻找一种简洁并且更加轻量的测试工具.用的最多 ...