电脑上不安装Oracle时,C# 调用oracle数据库,Oracle客户工具
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客户工具的更多相关文章
- 安装站点时出现“连接数据库出现数据库server或登录password无效,无法连接数据库,请又一次设定”解决方法
在安装站点时出现 "连接数据库出现数据库server或登录password无效,无法连接数据库,请又一次设定" 可是数据库username和password是正确的,在serv ...
- 电脑上不安装Oracle时,C# 调用oracle数据库,Oracle客户工具 【转载】
http://www.cnblogs.com/jiekzou/p/5047850.html Oracle的安装包通常都比较大,安装又比较费时,而且如果安装过程中不幸出错,各种蛋疼,即便是安装过N遍的老 ...
- 一台电脑上同时安装python2和python3
被python2的编码问题整的快晕了,python3对编码问题解决的不错 所以想安装下python3,但由于目前企业大多还是用python2,所以不想卸载2,让python2和python3共存. 本 ...
- 在同一台电脑上同时安装Python2和Python3
目前Python的两个版本Python2和Python3同时存在,且这两个版本同时在更新与维护. 到底是选择Python2还是选择Python3,取决于当前要使用的库.框架支持哪个版本. 例如:HTM ...
- 在windows系统电脑上同时安装python2.x和python3.x版本
在同一个电脑机子(windows系统)上安装同时安装python2.x和python3.x版本. 一.python2.x和python3.x安装 步骤1:在python官网(https://www.p ...
- 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 ...
- 使用C#检测电脑上是否安装某软件
private void button2_Click(object sender, EventArgs e) { try { string app = "chrome.exe"; ...
- 在同台电脑上再次安装MySql需要注意的事项
今天安装了一下mysql,出现的问题主要是在最后一步: msyql 安装到最后一步 start service 错误解决方法 1, 到控制面板里面先把 mysql 删除 . 2. 到 c 盘 C:\P ...
- Mac电脑上一款非常时尚高清的动态壁纸Living Wallpaper HD
很多朋友Mac电脑上都喜欢用动态壁纸,Living Wallpaper HD是本人尝试的一款非常不错的高清动态壁纸.有时钟.天气等各种组建,非常时尚美观. Living Wallpaper HD下载地 ...
随机推荐
- Session中放错误提示JSP上获取
servlet中: message= "图片上传失败!"; request.setAttribute("message",message); JSP中运用一 ...
- TODO:小程序手机预览调试
TODO:小程序手机预览调试 1. 小程序注册,目前还未开通个人注册,主体类型为企业.政府.媒体.其他组织 2. 登录小程序,绑定开发者,获取AppID 3. 下载微信小程序示例-新片预告 https ...
- ## Android 6.0 权限申请 ##
Android 6.0 权限申请 1. 以前的权限申请(sdk<23) 直接在AndroidManifest.xml中申明即可: <uses-permission android:name ...
- VMware Tools安装小结
背景介绍:在VMware上装完ArchLinux后,窗口太小,操作不方便.查询后得知VMware Tools没有自动安装,需要手动安装. 官方安装说明:在 Linux 虚拟机中手动安装或升级 VMwa ...
- CSS3总结 (帅哥)
第1章CSS3简介 如同人类的的进化一样,CSS3是CSS2的"进化"版本,在CSS2基础上,增强或新增了许多特性, 弥补了CSS2的众多不足之处,使得Web开发变得更为高效和便捷 ...
- 在Package中处理 bit column
SQL Server没有boolean类型,使用bit 类型来代替,bit类型有两个值:0 和 1. SSIS package中有boolean类型,SSIS自动将bit 类型转换成boolean类型 ...
- JAVA的静态变量、静态方法、静态类
静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. (1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象 ...
- 深入理解javascript对象系列第三篇——神秘的属性描述符
× 目录 [1]类型 [2]方法 [3]详述[4]状态 前面的话 对于操作系统中的文件,我们可以驾轻就熟将其设置为只读.隐藏.系统文件或普通文件.于对象来说,属性描述符提供类似的功能,用来描述对象的值 ...
- Android实现不重复启动APP的方法
转载博客:http://blog.sina.cn/dpool/blog/s/blog_5de73d0b0102vpai.html?utm_source=bshare&utm_campaign= ...
- 简单测试nginx1.90做TCP协议负载均衡的功能
最近工作中需要做TCP层面的负载均衡,以前网站用的反向代理nginx只支持应用层的负载均衡,对于TCP协议是无能为力的,需要使用LVS(linux虚拟服务器). LVS的特点是高性能和极复杂的配置.对 ...