分享一个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 ...
随机推荐
- 安卓APP关于切图标
bin res drawable-hdpi drawable-ldpi drawable-mdpi drawable-nodpi drawable-xhdpi drawable-xxhdpi x越大代 ...
- 各大浏览器hack
浏览器界的奇葩IE 样式前缀法,在需要制定某些浏览器只识别其中某些属性的时候: chrome/safari 都是webkit内核的浏览器.在属性前加前缀-webkti- firefox 只在火狐浏览器 ...
- nginx配置301重定向
1. 简介 301重定向可以传递权重,相比其他重定向,只有301是最正式的,不会被搜索引擎判断为作弊 2. 栗子 savokiss.com 301到 savokiss.me 3. nginx默认配置方 ...
- windows网络编程
1.协议的特征 面向消息的和基于流的 面向连接的和面向无连接的 2.端口分为三类:“已知”端口.已注册端口.动态和私用端口 0~1023 IANA控制,为固定服务保留的 1024~49151 已注册端 ...
- java开发JDBC连接数据库详解
JDBC连接数据库 好文一定要让大家看见 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机) ...
- 使用div元素来包含内容
在编写样式表时,经常要用到<div>元素来包含内容~~ 下面试简单的示例~ moreHigh.htm l <!DOCTYPE html> <html lang=" ...
- 使用tomact监控应用服务器的性能
第一步:在D:\apache-tomcat-7.0.63\conf 配置目录找到tomcat-users.xml 打开添加用户角色及权限 第二步:重启tomact 第三步:浏览器上打开http://1 ...
- 移动端touchstart、touchmove事件的基本使用
在pc端,我们通常使用$(window).scroll()事件来监听元素的位置,来做一些入场动效,如: $(window).scroll(function(){ var panel3Move = do ...
- CSS3颜色渐变模式
1.线性渐变:linear-gradient 语法:<linear-gradient> = linear-gradient([ [ <angle> | to <si ...
- Android真机调试 Android.Util.AndroidRuntimeException: You cannot combine custom titles with other title features
参考连接:http://blog.csdn.net/scyatcs/article/details/9003285 Android.Util.AndroidRuntimeException: You ...