分享一个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 ...
随机推荐
- haproxy测试
环境: Clients:N台linux, 使用“ab -k -c 20000...” 并发2w 请求haproxy Haproxy Server: R610 2*8核 2.4G Real Server ...
- 【krpano】汉化Web VR设置界面
欢迎加入qq群551278936讨论krpano解密技术以及获取最新软件 krpano 1.19支持了Web VR功能,允许以VR的方式查看全景图,配合上VR设备可以实现VR效果. 在VR方式查看时, ...
- map set区别
STL中的容器有顺序容器 (vector,list,deque),关联容器(map,set)还有一些其他容器.根据不同的场合选择不同的容器,会有意想不到的收获. Map是单词mapping(映射)的缩 ...
- 5.openstack之mitaka搭建计算节点
部署计算节点(compute服务) 一:控制节点配置 1.建库建用户 CREATE DATABASE nova_api; CREATE DATABASE nova; GRANT ALL PRIVILE ...
- .NET LINQ 数据分组
数据分组 分组指将数据放入组中以便每个组中的元素共享公共特性的操作. 方法 方法名 说明 C# 查询表达式语法 Visual Basic 查询表达式语法 更多信息 GroupBy 对共享 ...
- 响应式字体(js控制)
window.onload=function(x){if ('addEventListener' in document) {document.addEventListener('DOMContent ...
- JavaScript链表
//实现列表类 function list() { this.listSize = 0;//元素个数 属性 this.pos = 0;//当前位置 属性 ...
- ActiveMQ开发与简介
1.概述与介绍 ActiveMQ是Apache出品,最流行的.功能强大的即时通讯和集成模式的开源服务器.ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMSProvider实现.提供 ...
- 不用写Windows服务实现定时器功能(FluentScheduler )
MacBook Pro 只有四个 USB Type-C 接口是否错了? 一项新技术的诞生总会对已存在的事物造成冲击或影响,如果大家都害怕冲击与影响,那这个世界永远像现在不变就行了,大家都好好的,待在自 ...
- C++ 系列:C++ 基础 001
Copyright © 1900-2016, NORYES, All Rights Reserved. http://www.cnblogs.com/noryes/ 欢迎转载,请保留此版权声明. -- ...