Oracle数据库驱动类DBHelper

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Configuration;
using Oracle.DataAccess.Client;

namespace DAL
{
    public class DBHelper
    {
        //public static string ConnectionString = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;//方式一,数据库链接串写在配置文件中
        public static string ConnectionString = "Data Source=ORCL;User ID=bonus;Password=bonus123";//方式二,直接写在cs文件中

#region 对于所有表 ExecuteNonQuery() 直接对数据进行更新操作

public static int ExecuteNonQuery(string sql)
        {
            return ExecuteNonQuery(sql, null, CommandType.Text);
        }

public static int ExecuteNonQuery(string sql, OracleParameter[] para)
        {
            return ExecuteNonQuery(sql, para, CommandType.Text);
        }

public static int ExecuteNonQuery(string sql, CommandType cmdType)
        {
            return ExecuteNonQuery(sql, null, cmdType);
        }
        public static int ExecuteNonQuery(string sql, OracleParameter[] para, CommandType cmdType)
        {
            int rows = -1;
            using (OracleConnection conn = new OracleConnection(ConnectionString))
            {
                OracleCommand cmd = new OracleCommand(sql, conn);
                if (para != null)
                {
                    cmd.Parameters.AddRange(para);
                }
                cmd.CommandType = cmdType;

conn.Open();
                rows = cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();
                conn.Close();
            }
            return rows;
        }

#endregion

#region 对于所有表 ExecuteReader 返回结果集

public static OracleDataReader ExecuteReader(string sql)
        {
            return ExecuteReader(sql, null, CommandType.Text);
        }

public static OracleDataReader ExecuteReader(string sql, OracleParameter[] para)
        {
            return ExecuteReader(sql, para, CommandType.Text);
        }
        public static OracleDataReader ExecuteReader(string sql, CommandType cmdType)
        {
            return ExecuteReader(sql, null, cmdType);
        }

public static OracleDataReader ExecuteReader(string sql, OracleParameter[] para, CommandType cmdType)
        {
            OracleCommand cmd = null;
            OracleConnection conn = new OracleConnection(ConnectionString); ;
            cmd = new OracleCommand(sql, conn);
            if (para != null)
            {
                cmd.Parameters.AddRange(para);
            }
            cmd.CommandType = cmdType;
            conn.Open();
            return cmd.ExecuteReader(CommandBehavior.CloseConnection);
        }

#endregion

#region 对于所有表 ExecuteDataTable 返回数据表

public static DataTable ExecuteDataTable(string sql)
        {
            return ExecuteDataTable(sql, null, CommandType.Text);
        }

public static DataTable ExecuteDataTable(string sql, OracleParameter[] para)
        {
            return ExecuteDataTable(sql, para, CommandType.Text);
        }
        public static DataTable ExecuteDataTable(string sql, CommandType cmdType)
        {
            return ExecuteDataTable(sql, null, cmdType);
        }

public static DataTable ExecuteDataTable(string sql, OracleParameter[] para, CommandType cmdType)
        {
            try
            {
                DataTable myTable = new DataTable();
                using (OracleConnection conn = new OracleConnection(ConnectionString))
                {
                    OracleCommand cmd = new OracleCommand(sql, conn);
                    if (para != null)
                    {
                        cmd.Parameters.Add(para);
                    }
                    cmd.CommandType = cmdType;

OracleDataAdapter da = new OracleDataAdapter(cmd);
                    da.Fill(myTable);
                }
                return myTable;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

#endregion

#region 对于所有表 ExecuteScalar 返回数据表
        public static object ExecuteScalar(string sql)
        {
            return ExecuteScalar(sql, null, CommandType.Text);
        }

public static object ExecuteScalar(string sql, OracleParameter[] para)
        {
            return ExecuteScalar(sql, para, CommandType.Text);
        }

public static object ExecuteScalar(string sql, CommandType cmdType)
        {
            return ExecuteScalar(sql, null, cmdType);
        }

public static object ExecuteScalar(string sql, OracleParameter[] para, CommandType cmdType)
        {
            object res = null;
            using (OracleConnection conn = new OracleConnection(ConnectionString))
            {
                OracleCommand cmd = new OracleCommand(sql, conn);
                if (para != null)
                {
                    cmd.Parameters.AddRange(para);
                }
                cmd.CommandType = cmdType;
                conn.Open();
                res = cmd.ExecuteScalar();
                cmd.Parameters.Clear();
                conn.Close();
            }
            return res;
        }

#endregion

#region 存储过程操作
        /// <summary>  
        /// 执行存储过程  
        /// </summary>  
        /// <param name="storedProcName">存储过程名</param>  
        /// <param name="parameters">存储过程参数</param>  
        /// <returns>OracleDataReader返回数据集</returns>  
        public static OracleDataReader RunProcedure(string storedProcName, IDataParameter[] parameters)
        {
            OracleConnection connection = new OracleConnection(ConnectionString);
            OracleDataReader returnReader;
            connection.Open();
            OracleCommand command = BuildQueryCommand(connection, storedProcName, parameters);
            command.CommandType = CommandType.StoredProcedure;
            returnReader = command.ExecuteReader();
            return returnReader;
        }
        /// <summary>  
        /// 执行存储过程  
        /// </summary>  
        /// <param name="storedProcName">存储过程名</param>  
        /// <param name="parameters">存储过程参数</param>  
        /// <param name="tableName">DataSet结果中的表名</param>  
        /// <returns>DataSet</returns>  
        public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName)
        {
            using (OracleConnection connection = new OracleConnection(ConnectionString))
            {
                DataSet dataSet = new DataSet();
                connection.Open();
                OracleDataAdapter sqlDA = new OracleDataAdapter();
                sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
                sqlDA.Fill(dataSet, tableName);
                connection.Close();
                return dataSet;
            }
        }
        /// <summary>  
        /// 构建 OracleCommand 对象(用来返回一个结果集,而不是一个整数值)  
        /// </summary>  
        /// <param name="connection">数据库连接</param>  
        /// <param name="storedProcName">存储过程名</param>  
        /// <param name="parameters">存储过程参数</param>  
        /// <returns>OracleCommand</returns>  
        private static OracleCommand BuildQueryCommand(OracleConnection connection, string storedProcName, IDataParameter[] parameters)
        {
            OracleCommand command = new OracleCommand(storedProcName, connection);
            command.CommandType = CommandType.StoredProcedure;
            foreach (OracleParameter parameter in parameters)
            {
                command.Parameters.Add(parameter);
            }
            return command;
        }
 
     
        /// <summary>  
        /// 创建 OracleCommand 对象实例(存储过程返回输出参数)   
        /// </summary>  
        /// <param name="storedProcName">存储过程名</param>  
        /// <param name="parameters">存储过程参数</param>  
        /// <returns>OracleCommand 对象实例</returns>  
        /// 调用此方法的例子
        /* OracleParameter[] parameter = {  
              new OracleParameter("starttime",OracleDbType.Varchar2,8),  
                new OracleParameter("endtime",OracleDbType.Varchar2,8),
                new OracleParameter("days",OracleDbType.Decimal,3)
                };
                parameter[0].Direction = ParameterDirection.Input;
                parameter[1].Direction = ParameterDirection.Input;
                parameter[2].Direction = ParameterDirection.Output;
                //new OracleParameter("t_sql", OracleType.Cursor)};
                parameter[0].Value = starttime;
                parameter[1].Value = endtime;
       
                // parameter[2].Direction = System.Data.ParameterDirection.Output;
                 command = DBHelper.RunProcedureCommand("pro_comovertimedays", parameter);

//接收函数返回值
                  over_days = Convert.ToString(parameter[2].Value);//res
    */
        public static OracleCommand RunProcedureCommand(string storedProcName, IDataParameter[] parameters)
        {
            using (OracleConnection connection = new OracleConnection(ConnectionString))
            {
                
                OracleCommand command = new OracleCommand(storedProcName, connection);
                command.CommandType = CommandType.StoredProcedure;
                foreach (OracleParameter parameter in parameters)
                {
                    command.Parameters.Add(parameter);
                }
                connection.Open();
                command.ExecuteNonQuery();
                connection.Close();
                return command;               
                
            }
        }
        #endregion   
 
    }
}

时间: 2024-08-02 19:01:56

Oracle数据库驱动类DBHelper的相关文章

连接Oracle数据库帮助类

连接Oracle数据库帮助类,就是把连接Oracle数据库的方法封装起来,只需要在其它页面调用就可,不需要重复写. import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import oracle.jdbc.driver.OracleDriver; /** * 数据库连接帮助类 * @author zql_pc * */ public class DbHelp { /* *

关于jdbc的数据库驱动类DriverManager.getConnection()参数

关于jdbc的数据库驱动类DriverManager.getConnection()参数 1.Oracle8/8i/9i数据库(thin模式) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID String user="test"; St

C# Oracle数据库操作类实例详解

本文所述为C#实现的Oracle数据库操作类,可执行超多常用的Oracle数据库操作,包含了基础数据库连接.关闭连接.输出记录集.执行Sql语句,返回带分页功能的dataset .取表里字段的类型和长度等,同时还有哈稀表自动插入数据库等高级任务.需要特别指出的是:在执行SQL语句,返回 DataReader之前一定要先用.read()打开,然后才能读到数据,再用hashTable对数据库进行insert,update,del操作,注意此时只能用默认的数据库连接"connstr". 本文

(转)C# Oracle数据库操作类

原文地址:http://www.cnblogs.com/haibing0107/p/6143922.html using System;using System.Data;using System.Collections.Generic;using System.Configuration;using System.Data.OracleClient;using System.Text;using System.IO; /// <summary>  /// Oracle数据库操作类  ///

我也来写:数据库访问类DBHelper

一.前言 相信许多人都百度过:“.net 数据库访问类”.然后就出来一大堆SqlHelper.我也用过这些SqlHelper,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以很好的工作.ADO.NET已经封装很好了,我们很容易就可以实现自己的数据库访问类. 很久前,忘记在哪里看到过了,有一个朋友写了一篇[如何做一个好用的数据库访问类](有兴趣的朋友仍然可以搜索到),这篇文章确实写得很好,作者很详细的讲解了如何设计一个好的数据库访问类:所谓“好“是指:轻量.易用.通用.高

我也来写:数据库访问类DBHelper(转)

一.前言 相信许多人都百度过:“.net 数据库访问类”.然后就出来一大堆SqlHelper.我也用过这些SqlHelper,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以很好的工作.ADO.NET已经封装很好了,我们很容易就可以实现自己的数据库访问类. 很久前,忘记在哪里看到过了,有一个朋友写了一篇[如何做一个好用的数据库访问类](有兴趣的朋友仍然可以搜索到),这篇文章确实写得很好,作者很详细的讲解了如何设计一个好的数据库访问类:所谓“好“是指:轻量.易用.通用.高

java操作ORACLE数据库工具类(JDBC)

package com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * * 2015-3-5下午2:45:56 * *MusicWeb.util.DBUtil *连接数据库 类 */ public class DBUtil

mysql/sqlser/oracle数据库驱动的写法

oracle数据库:  driver="oracle.jdbc.driver.OracleDriver" url = "jdbc:oracle:thin:@地址:端口:数据库名" mysql数据库: driver="com.mysql.jdbc.Driver" url = "jdbc:mysql://地址:端口/数据库名?user=root&password=root&useUnicode=true&charac

Oracle数据库操作类

1 using System; 2 using System.Configuration; 3 using System.Data; 4 using System.Data.OracleClient; 5 using System.Collections; 6 using System.Collections.Generic; 7 8 namespace EIM.DBUtility 9 { 10 11 /// <summary> 12 /// A helper class used to ex