分享一个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>
时间: 2024-10-05 08:42:07

分享一个oraclehelper的相关文章

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

分享一个MySQL分库备份脚本(原) 开发思路: 1.路径:规定备份到什么位置,把路径(先判断是否存在,不存在创建一个目录)先定义好,我的路径:/mysql/backup,每个备份用压缩提升效率,带上时间方便整理 2.取数据库:抓取数据库名称,我用的awk和grep配合取数据库的名称(如果想按照表备份可以再细化一下)注意要用mysql -e选项 这样才能做成脚本 3.系统环境变量:因为用到了函数,所以非系统内置的命令 最好在脚本里面用 . /etc/profile  把系统当前的环境变量传过来

分享一个近期写的简单版的网页采集器

分享一个近期写的简单版的网页采集器 功能特点: 1.可通过配置,保存采集规则. 2.可通过采集规则,进行数据采集. 3.可分页,分关键字,进行采集. 4.可保存数据至数据库,文本中. ........... 功能还比较简单,喜欢深入的可以继续深入下去,暂时还没有登录的功能,因为登录功能涉及到的范围比较广,待日后慢慢研究后再开发. 我先上个图让大家一睹为快吧: 首先看看页面,我们要采集这个网站的文章 接下来,首先是查找分页,获得分页里面的文章链接,接着查找内容页需要采集的字段,生成规则,进行采集.

分享一个简单的简单的SQLHelper类

分享一个简单的简单的SQLHelper类,代码如下: 1 class SqlHelper 2 { 3 public static readonly string connstr = 4 ConfigurationManager.ConnectionStrings["dbConnStr"].ConnectionString; 5 6 public static int ExecuteNonQuery(string cmdText, 7 params SqlParameter[] para

分享一个记录日志的类,可多线程使用。

好久没写博客了,今天分享一个自己用的日志类,非原创,借鉴了前辈的一个想法,然后修改来的. 日志我们是必须的,现在程序都是多线程并发了,记日志就有可能出现问题了,lock?影响性能.log4net太重量级了,本日志是一个轻量级的小工具. 废话不多说,看源码: 1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Text; 5 6 namespace GEDU.CourseOnli

分享一个搭建流量频道的经历

最近接触了一个很小众的行业,行业本身的搜索流量很小.朋友来问我SEO该怎么做. 于是有了这次经历,目前各项数据都还在测试观察中.好了开始. 仔细研究了一下他所在的行业,发现虽然是一个新兴的小众的行业,但是能跟娱乐类的信息扯上关系.于是准备搭建一个明星资料库来引入一批流量.由于这个朋友是技术出身,技术也比较牛,于是几乎把想到的东西都实现了. 首先从词库入手,既然是搭建明星资料库,那么从获取明星名字开始,这个从很多软件或者网站上都能够直接跑出来!经过对部分歌手的抽样分析,发现稍微热门一点的歌手,基本

分享一个C++写的远程控制木马:Gh0st_VS2010直接编译

经过修改VS2010已经可以直接编译了,之前做了360等主流的免杀现在已经失效了 放出代码给需要的朋友学习,请勿用作非法用途 代码下载地址如下: 链接: http://pan.baidu.com/s/1sjwhh8L  密码: rc6f 编译后有3个文件,运行Gh0st.exe就行了,运行以后配置好,可以生成被控端,运行以后自动删除自己的exe,开机启动服务等--至于使用教程百度很多,自己找一找吧 解压密码在: http://www.bcwhy.com/thread-21884-1-1.html

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

原文:分享一个批量导出当前实例下的所有linkedserver脚本 分享一个批量导出当前实例下的所有linkedserver脚本 很多时候,我们都需要导出实例下面的登录用户,job,linkedserver等等 导出job比较复杂,下午写了一个脚本把所有的linkedserver导出来,但是密码不会显示出来 下面脚本在SQL2008 R2下面测试通过 -- ============================================= -- Author: <桦仔> -- Blog

[Unity3D入门]分享一个自制的入门级游戏项目&quot;坦克狙击手&quot;

[Unity3D入门]分享一个自制的入门级游戏项目"坦克狙击手" 我在学Unity3D,TankSniper(坦克狙击手)这个项目是用来练手的.游戏玩法来自这里(http://www.4399.com/flash/127672_3.htm),虽然抄袭了人家的创意,不过我只用来练习(目前还很不成熟,离人家的境界相差很大),坦克.导弹.建筑模型来自网络,应该不会有版权问题吧. 由于模型和代码总共10M以上了,需要源代码和发布的Windows版.网页版程序的同学麻烦点个赞并留下你的邮箱~ 到

分享一个PHP调用RestFul接口的函数

php越来越前端化,大型系统中的php经常是调用后端服务的接口,这里分享一个函数.希望对大家有用. /** * [http 调用接口函数] * @Date 2016-07-11 * @Author GeorgeHao * @param string $url [接口地址] * @param array $params [数组] * @param string $method [GET\POST\DELETE\PUT] * @param array $header [HTTP头信息] * @par