Beispiel #1
0
        public object ExecuteScalar(OracleCommand cmd)
        {
            object ret = null;

            try
            {
                log.Debug(DbTool.GetLogSql(cmd.CommandText, cmd.Parameters));
                if (null == Transaction.Current)
                {
                    cmd.Connection.Open();
                }
                ret = cmd.ExecuteScalar();
            }
            catch (System.Exception ex)
            {
                ret = null;
                log.Error("ExecuteScalar", ex);
                throw ex;
            }
            finally
            {
                if (null == Transaction.Current && cmd.Connection != null && cmd.Connection.State != ConnectionState.Closed)
                {
                    cmd.Connection.Close();
                    cmd.Connection.Dispose();
                }
            }
            return(ret);
        }
Beispiel #2
0
        public DataTable ExecuteDataTable(OracleCommand cmd)
        {
            DataTable dataTable = new DataTable();

            try
            {
                log.Debug(DbTool.GetLogSql(cmd.CommandText, cmd.Parameters));
                if (null == Transaction.Current)
                {
                    cmd.Connection.Open();
                }
                OracleDataAdapter da = new OracleDataAdapter(cmd);
                da.Fill(dataTable);
            }
            catch (System.Exception ex)
            {
                dataTable = null;
                log.Error("ExecuteDataTable", ex);
                throw ex;
            }
            finally
            {
                if (null == Transaction.Current && cmd.Connection != null && cmd.Connection.State != ConnectionState.Closed)
                {
                    cmd.Connection.Close();
                    cmd.Connection.Dispose();
                }
            }
            return(dataTable);
        }
Beispiel #3
0
 /// <summary>
 /// 谨慎使用 Reader记得关闭
 /// </summary>
 /// <param name="cmd"></param>
 /// <returns></returns>
 private OracleDataReader ExecuteReader(OracleCommand cmd)
 {
     log.Debug(DbTool.GetLogSql(cmd.CommandText, cmd.Parameters));
     if (null == Transaction.Current)
     {
         cmd.Connection.Open();
         return(cmd.ExecuteReader(CommandBehavior.CloseConnection));
     }
     return(cmd.ExecuteReader());
 }
Beispiel #4
0
        /// <summary>
        /// 转换字段可区分大小写
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="cmd"></param>
        /// <returns></returns>
        public List <T> ExecuteList <T>(OracleCommand cmd) where T : class
        {
            //return Cis.BaseModel.DeserializeObject.ConvertTo<T>(ExecuteDataTable(cmd)) as List<T>;
            List <T>         list   = null;
            OracleDataReader reader = null;

            try
            {
                log.Debug(DbTool.GetLogSql(cmd.CommandText, cmd.Parameters));
                if (null == Transaction.Current)
                {
                    cmd.Connection.Open();
                    reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                }
                else
                {
                    reader = cmd.ExecuteReader();
                }
                var columns = DbTool.GetColumns(reader);
                list = new List <T>();
                while (reader.Read())
                {
                    //TODO ??
                    // list.Add(Cis.BaseModel.DeserializeObject.CreateItem<T>(reader, columns));
                }
            }
            catch (System.Exception ex)
            {
                log.Error("ExecuteList", ex);
                list = null;
                throw ex;
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                    reader.Dispose();
                }
                if (null == Transaction.Current && cmd.Connection != null && cmd.Connection.State != ConnectionState.Closed)
                {
                    cmd.Connection.Close();
                    cmd.Connection.Dispose();
                }
            }
            return(list);
        }
Beispiel #5
0
        public int ExecuteNonQuery(OracleCommand cmd)
        {
            int ret = -1;

            try
            {
                if (cmd.ArrayBindCount > 0)
                {
#if DEBUG
                    DbTool.LogOperateDone(cmd);
#endif
                    DbTool.WriteLog(Level.Debug, cmd);
                }
                else
                {
                    log.Debug(DbTool.GetLogSql(cmd.CommandText, cmd.Parameters));
                }

                //执行批处理
                if (null == Transaction.Current)
                {
                    cmd.Connection.Open();
                }
                ret = cmd.ExecuteNonQuery();
            }
            catch (System.Exception ex)
            {
                log.Error("ExecuteNonQuery", ex);
                throw ex;
            }
            finally
            {
                if (null == Transaction.Current && cmd.Connection != null && cmd.Connection.State != ConnectionState.Closed)
                {
                    cmd.Connection.Close();
                    cmd.Connection.Dispose();
                }
            }
            return(ret);
        }
Beispiel #6
0
        public T ExecuteModel <T>(OracleCommand cmd) where T : class
        {
            T t = default(T);
            OracleDataReader reader = null;

            try
            {
                log.Debug(DbTool.GetLogSql(cmd.CommandText, cmd.Parameters));
                if (null == Transaction.Current)
                {
                    cmd.Connection.Open();
                }
                reader = cmd.ExecuteReader();
                if (reader.Read())
                {
                    //TODO 观察一下是否有问题
                    //  t = Cis.BaseModel.DeserializeObject.CreateItem<T>(reader);
                }
            }
            catch (System.Exception ex)
            {
                log.Error("ExecuteModel", ex);
                throw ex;
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                    reader.Dispose();
                }
                if (null == Transaction.Current && cmd.Connection != null && cmd.Connection.State != ConnectionState.Closed)
                {
                    cmd.Connection.Close();
                    cmd.Connection.Dispose();
                }
            }
            return(t);
        }