OracleProcedureHelper

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
using System.Data.OracleClient;
using System.Data;

namespace WMSWebReport.DBUtility
{
    public class OracleProcedureHelper
    {
    //    public static readonly string ConnectionString = ConfigurationSettings.AppSettings["DefaultConnetion"];

        private OracleConnection GetConnection()
        {
            string ConnString = ConfigurationSettings.AppSettings["DefaultConnetion"];
            OracleConnection conn = new OracleConnection(ConnString);
            return conn;
        }

        /// <summary>
        /// 執行procedure,返回DataSet數據集
        /// </summary>
        /// <param name="spName">procedure名字</param>
        /// <param name="parameters">OracleParameter的參數數組</param>
        /// <returns></returns>

        public DataSet ExecuteSP(string spName, OracleParameter[] parameters)
        {
            using (OracleConnection conn = GetConnection())
            {
                conn.Open();
                DataSet ds = new DataSet();
                OracleCommand cmd = new OracleCommand(spName, conn);
                cmd.CommandType = CommandType.StoredProcedure;

                foreach (OracleParameter para in parameters)
                {
                    cmd.Parameters.Add(para);
                }
                try
                {
                    OracleDataAdapter da = new OracleDataAdapter(cmd);

                    da.Fill(ds);

                }
                catch (System.Data.OracleClient.OracleException e)
                {
                    throw new Exception(e.Message);
                }
                finally
                {
                    conn.Close();
                }
                return ds;
            }
        }

         ///執行返回結果為STRING 型的Procedure
         ///
        public string ExecuteSP1(string spName, OracleParameter[] parameters)
        {

            using (OracleConnection conn = GetConnection())
            {
                conn.Open();
                string result ="";
                OracleCommand cmd = new OracleCommand(spName, conn);
                cmd.CommandType = CommandType.StoredProcedure;

                foreach (OracleParameter para in parameters)
                {
                    cmd.Parameters.Add(para);
                }

                try
                {
                    cmd.ExecuteNonQuery();
                    result = parameters[parameters.Length - 1].Value.ToString();
                    return result;
                }
                catch (System.Data.OracleClient.OracleException e)
                {
                    throw new Exception(e.Message);
                }
                finally
                {
                    conn.Close();
                }
                return result;
            }
        }
        ///執行返回結果為INT 型的
        ///
        public int Execute(string sql)
        {
            using (OracleConnection conn = GetConnection())
            {
                conn.Open();
                int result;
                OracleCommand cmd = new OracleCommand(sql, conn);
                //cmd.CommandType = CommandType.StoredProcedure;

                //foreach (OracleParameter para in parameters)
                //{
                //    cmd.Parameters.Add(para);
                //}
                try
                {
                    result = cmd.ExecuteNonQuery();
                    //result = parameters[parameters.Length - 1].Value.ToString();
                    return result;
                }
                catch (System.Data.OracleClient.OracleException e)
                {
                    throw new Exception(e.Message);
                }
                finally
                {
                    conn.Close();
                }
            }
        }

        ///執行返回結果為COUNT
        ///
        public DataSet Executeselectwmscount(string sql)
        {
            using (OracleConnection conn = GetConnection())
            {
                conn.Open();
                int result;
                DataSet ds = new DataSet();
                OracleCommand cmd = new OracleCommand(sql, conn);
                try
                {
                    OracleDataAdapter da = new OracleDataAdapter(cmd);
                   cmd.ExecuteReader();
                   da.Fill(ds);
                    //result = parameters[parameters.Length - 1].Value.ToString();
                    return ds;
                }
                catch (System.Data.OracleClient.OracleException e)
                {
                    throw new Exception(e.Message);
                }
                finally
                {
                    conn.Close();
                }
            }
        }

        public bool iSelect(string sql) // add by chao.su 2014/09/09
        {
            using (OracleConnection conn = GetConnection())
            {
                try
                {
                    conn.Open();
                    OracleCommand cmd = new OracleCommand(sql, conn);
                    //OracleDataReader dr = cmd.ExecuteReader();
                    object o = cmd.ExecuteScalar();
                    //int count=Convert.ToInt32(cmd.ExecuteScalar());//cmd为Sqlcommand对象if (count>0){   //有,给出提示}else{  //无,给无提示}
                    if (o==null)
                    {
                        return false;
                    }
                    else
                    {
                        return true;
                    }

                }
                catch (System.Data.OracleClient.OracleException e)
                {
                    throw new Exception(e.Message);
                }
                finally
                {
                    conn.Close();
                }
            }
        }
    }
}
时间: 2024-08-01 13:30:49

OracleProcedureHelper的相关文章