分享一个oraclehelper
分享一个拿即用的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的更多相关文章
- 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)
分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...
- 分享一个MySQL分库分表备份脚本(原)
分享一个MySQL分库备份脚本(原) 开发思路: 1.路径:规定备份到什么位置,把路径(先判断是否存在,不存在创建一个目录)先定义好,我的路径:/mysql/backup,每个备份用压缩提升效率,带上 ...
- 分享一个与ABP配套使用的代码生成器源码
点这里进入ABP系列文章总目录 分享一个与ABP配套使用的代码生成器源码 真对不起关注我博客的朋友, 因最近工作很忙, 很久没有更新博客了.以前答应把自用的代码生成器源码共享出来, 也一直没有时间整理 ...
- 分享一个常用Adb命令
分享一个常用Adb命令 首先 首先感谢@xuxu的常用adb命令,收益良多,但是已经不能满足于我,所以补充了下. 再者 好久没发帖了,最近论坛老司机们都在讨论/总结,我就用这个干货回报吧. 最后 基于 ...
- 福利到~分享一个基于jquery的智能提示控件intellSeach.js
一.需求 我们经常会遇到[站内搜索]的需求,为了提高用户体验,我们希望能做到像百度那样的即时智能提示.例如:某公司人事管理系统,想搜索李XX,只要输入“李”,系统自然会提示一些姓李的员工,这样方便用户 ...
- 分享一个ruby网站 | 菜鸟教程
http://www.runoob.com/ruby/ruby-tutorial.html 分享一个ruby网站.
- 分享一个批量导出当前实例下的所有linkedserver脚本
分享一个批量导出当前实例下的所有linkedserver脚本 很多时候,我们都需要导出实例下面的登录用户,job,linkedserver等等 导出job比较复杂,下午写了一个脚本把所有的linked ...
- 分享一个漂亮的ASP.NET MVC界面框架
本文分享一个插件化的界面框架,该框架提供了用户.角色.权限管理功能,也提供了插件的管理和插件中心.下图是该界面框架的样式(全部源码和原理介绍下一篇分享,推荐越多,源码放的越早,呵呵). 要使用该界面框 ...
- [Unity3D入门]分享一个自制的入门级游戏项目"坦克狙击手"
[Unity3D入门]分享一个自制的入门级游戏项目"坦克狙击手" 我在学Unity3D,TankSniper(坦克狙击手)这个项目是用来练手的.游戏玩法来自这里(http://ww ...
随机推荐
- C和指针 第三章 习题
在一个源文件中,有两个函数x和y,定义一个链接属性external储存类型static的变量a,且y可以访问,x不可以访问,该如何定义呢? #include <stdio.h> void ...
- ubuntu下建立NFS共享,并用开发板挂载
安装NFS服务 apt-get install nfs-kernel-server nfs-common apt-get install portmap 在/etc/exports里加入 /home/ ...
- ASP.NET Core--基于授权的资源
翻译如下: 通常授权取决于正在访问的资源. 例如,文档可以具有作者属性. 将只允许文档作者对其进行更新,因此必须在进行授权评估之前从文档存储库加载资源. 这不能使用Authorize属性来完成,因为属 ...
- 【Python基础学习三】数字(Number)
Python Number 数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间. Python 四种数值类型: 整型(Int) - 通常 ...
- Ext 修改Store初始化加载完后修改record属性。
/** * Created by huangbaidong on 2016/9/18. * 产品组件通用Store, */ Ext.define('app.component.ebs.itemdata ...
- 开放封闭原则(Open Closed Principle)
在面向对象的设计中有很多流行的思想,比如说 "所有的成员变量都应该设置为私有(Private)","要避免使用全局变量(Global Variables)",& ...
- QT error: cannot find -lGL
自己电脑新搭建的QT5.4.2编程环境,编译的第一个程序出现错误:error: cannot find -lGL 经查证,是找不到GL库,解决办法: sudo apt-get install libg ...
- 【Java EE 学习 44】【Hibernate学习第一天】【Hibernate对单表的CRUD操作】
一.Hibernate简介 1.hibernate是对jdbc的二次开发 2.jdbc没有缓存机制,但是hibernate有. 3.hibernate的有点和缺点 (1)优点:有缓存,而且是二级缓存: ...
- Hbase+ Phoenix搭建教程
Hbase+ Phoenix搭建教程 一.Hbase简介 HBase是基于列存储.构建在HDFS上的分布式存储系统,其主要功能是存储海量结构化数据. HBase构建在HDFS之上,因此HBase也是通 ...
- Logging vs NoLogging
You Asked My Prod environments is like this. Three Node RAC, Active Data guard enabled. There is a p ...