分享一个拿即用的oraclehelper

首先要引用本机中的oralce access,如果是64位的话,也必须是64位运行,不然会报连接为空connection 等于null.

using Oracle.DataAccess;
using Oracle.DataAccess.Client;

  

public class OraHelper
{ public static string connectionString;
private static OracleConnection conn; static OraHelper()
{
connectionString = System.Configuration.ConfigurationSettings.AppSettings["ConnetionString"].ToString();//读取app.cofig中的数据库配置 conn = new OracleConnection(connectionString);
} /// <summary>
/// 获取默认的连接
/// </summary>
/// <returns></returns>
public static OracleConnection GetConnection()
{
return conn;
} /// <summary>
/// 创建新的连接(用于事务操作)
/// </summary>
/// <returns></returns>
public static OracleConnection CreateConnection()
{
return new OracleConnection(connectionString);
} public static bool ConnectionTest()
{
bool ret = false;
try
{
conn.Open();
ret = true;
}
catch { ret = false; }
finally { conn.Close(); }
return ret;
} public static int ExecuteNonQuery(CommandType cmdType, string cmdText, params OracleParameter[] commandParameters)
{
int val = 0;
OracleCommand cmd = new OracleCommand();
PrepareCommand(cmd, null, cmdType, cmdText, commandParameters);
try
{
val = cmd.ExecuteNonQuery();
}
catch { val = -1; }
finally
{
cmd.Parameters.Clear();
conn.Close();
}
return val;
} public static int ExecuteNonQuery(string cmdText)
{
return ExecuteNonQuery(CommandType.Text, cmdText);
} public static int ExecuteNonQuery(string cmdText, params OracleParameter[] commandParameters)
{
return ExecuteNonQuery(CommandType.Text, cmdText, commandParameters);
} /// <summary>
/// 以事务的方式执行(多用于多条SQL语句执行)
/// </summary>
public static int ExecuteNonQueryByTransaction(string cmdText, params OracleParameter[] commandParameters)
{
int val = 0;
OracleCommand cmd = new OracleCommand();
OracleTransaction trans = conn.BeginTransaction();
PrepareCommand(cmd, trans, CommandType.Text, cmdText, commandParameters);
try
{
val = cmd.ExecuteNonQuery();
trans.Commit();
}
catch
{
val = -1;
trans.Rollback();
}
finally
{
cmd.Parameters.Clear();
conn.Close();
}
return val;
} public static int ExecuteNonQuery(OracleTransaction trans, CommandType cmdType, string cmdText, params OracleParameter[] commandParameters)
{
int val = 0;
OracleCommand cmd = new OracleCommand();
PrepareCommand(cmd, trans, cmdType, cmdText, commandParameters);
try
{
val = cmd.ExecuteNonQuery();
}
catch
{
val = -1;
}
finally
{
cmd.Parameters.Clear();
}
return val;
} public static OracleDataReader ExecuteReader(CommandType cmdType, string cmdText, params OracleParameter[] commandParameters)
{
OracleDataReader rdr;
OracleCommand cmd = new OracleCommand();
try
{
PrepareCommand(cmd, null, cmdType, cmdText, commandParameters);
rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
}
catch { rdr = null; }
finally
{
cmd.Parameters.Clear();
conn.Close();
}
return rdr;
} public static DataTable ExecuteDataTable(string cmdText)
{
DataTable dt = new DataTable();
OracleCommand cmd = new OracleCommand();
PrepareCommand(cmd, null, CommandType.Text, cmdText);
try
{
OracleDataAdapter adapter = new OracleDataAdapter(cmd);
DataSet ds = new DataSet();
adapter.Fill(ds);
if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
dt = ds.Tables[0];
else
dt = null;
}
catch { dt = null; }
finally { conn.Close(); }
return dt;
} public static DataTable ExecuteDataTable(string cmdText, params OracleParameter[] commandParameters)
{
DataTable dt = new DataTable();
OracleCommand cmd = new OracleCommand();
PrepareCommand(cmd, null, CommandType.Text, cmdText, commandParameters);
try
{
OracleDataAdapter adapter = new OracleDataAdapter(cmd);
DataSet ds = new DataSet();
adapter.Fill(ds);
if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
dt = ds.Tables[0];
else
dt = null;
}
catch { dt = null; }
finally { conn.Close(); }
return dt;
} public static DataTable ExecuteDataTable(CommandType cmdType, string cmdText, params OracleParameter[] commandParameters)
{
DataTable dt = new DataTable();
OracleCommand cmd = new OracleCommand();
PrepareCommand(cmd, null, cmdType, cmdText, commandParameters);
try
{
OracleDataAdapter adapter = new OracleDataAdapter(cmd);
DataSet ds = new DataSet();
adapter.Fill(ds);
if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
dt = ds.Tables[0];
else
dt = null;
}
catch { dt = null; }
finally { conn.Close(); }
return dt;
} public static DataSet ExecuteDataSet(string cmdText)
{
DataSet ds = new DataSet();
OracleCommand cmd = new OracleCommand();
PrepareCommand(cmd, null, CommandType.Text, cmdText);
try
{
OracleDataAdapter adapter = new OracleDataAdapter(cmd);
adapter.Fill(ds);
}
catch { ds = null; }
finally { conn.Close(); }
if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) return null;
else return ds;
} public static DataSet ExecuteDataSet(string cmdText, params OracleParameter[] commandParameters)
{
DataSet ds = new DataSet();
OracleCommand cmd = new OracleCommand();
PrepareCommand(cmd, null, CommandType.Text, cmdText, commandParameters);
try
{
OracleDataAdapter adapter = new OracleDataAdapter(cmd);
adapter.Fill(ds);
}
catch { ds = null; }
finally { conn.Close(); }
if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) return null;
else return ds;
} public static DataSet ExecuteDataSet(CommandType cmdType, string cmdText, params OracleParameter[] commandParameters)
{
DataSet ds = new DataSet();
OracleCommand cmd = new OracleCommand();
PrepareCommand(cmd, null, cmdType, cmdText, commandParameters);
try
{
OracleDataAdapter adapter = new OracleDataAdapter(cmd);
adapter.Fill(ds);
}
catch { ds = null; }
finally { conn.Close(); }
if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) return null;
else return ds;
} public static object ExecuteScalar(string cmdText)
{
return ExecuteScalar(CommandType.Text, cmdText);
} public static object ExecuteScalar(string cmdText, params OracleParameter[] commandParameters)
{
return ExecuteScalar(CommandType.Text, cmdText, commandParameters);
} public static object ExecuteScalar(CommandType cmdType, string cmdText, params OracleParameter[] commandParameters)
{
object val = null;
OracleCommand cmd = new OracleCommand();
PrepareCommand(cmd, null, cmdType, cmdText, commandParameters);
try
{
val = cmd.ExecuteScalar();
}
catch { val = null; }
finally
{
cmd.Parameters.Clear();
conn.Close();
}
return val;
} private static void PrepareCommand(OracleCommand cmd, OracleTransaction trans, CommandType cmdType, string cmdText, params OracleParameter[] cmdParms)
{
if (trans != null)
{
if (trans.Connection.State != ConnectionState.Open)
trans.Connection.Open();
cmd.Connection = trans.Connection;
}
else
{
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
}
cmd.CommandText = cmdText;
cmd.CommandType = cmdType;
if (cmdParms != null)
{
foreach (OracleParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}
}

  在app.config中添加oracle 的连接,代码如下:

<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<appSettings>
<add key="ConnetionString" value="data source=192.168.0.2/orcl;user id=TEST;password=123456;persist security info=False;Pooling=False"/>
</appSettings>
</configuration>

分享一个oraclehelper的更多相关文章

  1. 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)

    分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...

  2. 分享一个MySQL分库分表备份脚本(原)

    分享一个MySQL分库备份脚本(原) 开发思路: 1.路径:规定备份到什么位置,把路径(先判断是否存在,不存在创建一个目录)先定义好,我的路径:/mysql/backup,每个备份用压缩提升效率,带上 ...

  3. 分享一个与ABP配套使用的代码生成器源码

    点这里进入ABP系列文章总目录 分享一个与ABP配套使用的代码生成器源码 真对不起关注我博客的朋友, 因最近工作很忙, 很久没有更新博客了.以前答应把自用的代码生成器源码共享出来, 也一直没有时间整理 ...

  4. 分享一个常用Adb命令

    分享一个常用Adb命令 首先 首先感谢@xuxu的常用adb命令,收益良多,但是已经不能满足于我,所以补充了下. 再者 好久没发帖了,最近论坛老司机们都在讨论/总结,我就用这个干货回报吧. 最后 基于 ...

  5. 福利到~分享一个基于jquery的智能提示控件intellSeach.js

    一.需求 我们经常会遇到[站内搜索]的需求,为了提高用户体验,我们希望能做到像百度那样的即时智能提示.例如:某公司人事管理系统,想搜索李XX,只要输入“李”,系统自然会提示一些姓李的员工,这样方便用户 ...

  6. 分享一个ruby网站 | 菜鸟教程

    http://www.runoob.com/ruby/ruby-tutorial.html 分享一个ruby网站.

  7. 分享一个批量导出当前实例下的所有linkedserver脚本

    分享一个批量导出当前实例下的所有linkedserver脚本 很多时候,我们都需要导出实例下面的登录用户,job,linkedserver等等 导出job比较复杂,下午写了一个脚本把所有的linked ...

  8. 分享一个漂亮的ASP.NET MVC界面框架

    本文分享一个插件化的界面框架,该框架提供了用户.角色.权限管理功能,也提供了插件的管理和插件中心.下图是该界面框架的样式(全部源码和原理介绍下一篇分享,推荐越多,源码放的越早,呵呵). 要使用该界面框 ...

  9. [Unity3D入门]分享一个自制的入门级游戏项目"坦克狙击手"

    [Unity3D入门]分享一个自制的入门级游戏项目"坦克狙击手" 我在学Unity3D,TankSniper(坦克狙击手)这个项目是用来练手的.游戏玩法来自这里(http://ww ...

随机推荐

  1. (转)dp和dip是同一个单位

    原文地址:http://blog.csdn.net/chenyufei1013/article/details/8363619 摘要 本文介绍了android单位dp,dip的概念,并给出了它的确切含 ...

  2. python3简单爬虫

    最近在抽空学了一下python,于量就拿爬是练了下手,不得不说python的上手非常简单.在网上找了一下,大都是python2的帖子,于是随手写了个python3的.代码非常简单就不解释了,直接贴代码 ...

  3. iOS 8.0后使用UIAlertController

    iOS 8的新特性之一就是让接口更有适应性.更灵活,因此许多视图控制器的实现方式发生了巨大的变化.全新的UIPresentationController在实现视图控制器间的过渡动画效果和自适应设备尺寸 ...

  4. iOS应用文件夹

    IOS5多了一个比较重要的功能iCloud,但是同时也出现一个问题,很多的APP都把很大量的数据存在APP底下的Documents(/Documents )文件夹里面,这样苹果会reject掉你的AP ...

  5. AngularJS 事件

    AngularJS 有自己的 HTML 事件指令. ng-click指令: ng-click 指令定义了 AngularJS 点击事件. <!DOCTYPE html> <html& ...

  6. AngularJS 表格

    ng-repeat 指令可以完美的显示表格. 使用 angular 显示表格是非常简单的: <!DOCTYPE html> <html> <head> <me ...

  7. jQuery可拖拽排序列表jquery-sortable-lists

    jquery-sortable-lists可以通过鼠标进行拖动排列树型菜单,可以定义某个列表元素是否拖动,拖动后回调,点击可以折叠树型结点,可以用来在后台模仿wordpress后台拖动菜单,实现多级菜 ...

  8. 【转载】PyQt QSetting保存设置

    转载地址: http://blog.sina.com.cn/s/blog_4b5039210100h3zb.html 用户对应用程序经常有这样的要求:要求它能记住它的settings,比如窗口大小,位 ...

  9. 利用python的双向队列(Deque)数据结构实现回文检测的算法

    #!/usr/bin/env python # -*- coding: utf-8 -*- # learn <<Problem Solving with Algorithms and Da ...

  10. rhel5.8安装oracle 10g ASM

    1.所有的配置和文件系统一样 2.规划: 加了8块小盘,ASM为了实验使用asmlib驱动(rhel6不再支持asmlib驱动),裸设备的2种方法(rowdevice和udev) 三块盘使用asmli ...