public List <T> ExecuteList <T>(string sql, Origami.Data.DataContext.DataMapperDelegate <T> dataMapper) { List <T> list = new List <T>(); IDataReader rdr = null; DbCommand cmd = null; try { cmd = conn.CreateCommand(); cmd.CommandText = sql; rdr = cmd.ExecuteReader(); while (rdr.Read()) { list.Add(dataMapper.Invoke(rdr)); } } catch (Exception ex) { if (cmd != null) { cmd.Dispose(); } if (rdr != null) { rdr.Close(); } logger.Write(Severity.Error, ex.ToString()); throw ex; } finally { if (cmd != null) { cmd.Dispose(); } if (rdr != null) { rdr.Close(); } } return(list); }
public T ExecuteObject <T>(string sql, Origami.Data.DataContext.DataMapperDelegate <T> dataMapper) { T obj = default(T); IDataReader rdr = null; DbCommand cmd = null; try { cmd = conn.CreateCommand(); cmd.CommandText = sql; rdr = cmd.ExecuteReader(); if (rdr.Read()) { obj = dataMapper.Invoke(rdr); } } catch (Exception ex) { if (cmd != null) { cmd.Dispose(); } if (rdr != null) { rdr.Close(); } logger.Write(Severity.Error, ex.ToString()); throw ex; } finally { if (cmd != null) { cmd.Dispose(); } if (rdr != null) { rdr.Close(); } } return(obj); }
public List <T> ExecuteList <T>(DbCommandWrapper cmdWrapper, bool isStoredProc, string cmdText, Origami.Data.DataContext.DataMapperDelegate <T> dataMapper) { List <T> list = new List <T>(); DbCommand cmd = null; IDataReader rdr = null; try { cmd = conn.CreateCommand(); cmdWrapper.Command = cmd; if (isStoredProc) { cmd.CommandType = CommandType.StoredProcedure; } else { cmd.CommandType = CommandType.Text; } cmd.CommandText = cmdText; foreach (ParameterClause param in cmdWrapper.Parameters) { AddParameter(cmd, param); } cmd.CommandText = cmdText; rdr = cmd.ExecuteReader(); while (rdr.Read()) { list.Add(dataMapper.Invoke(rdr)); } } catch (Exception ex) { logger.Write(Severity.Error, ex.ToString()); if (cmd != null) { cmd.Dispose(); } if (rdr != null) { rdr.Close(); } throw ex; } finally { if (cmd != null) { cmd.Dispose(); } if (rdr != null) { rdr.Close(); } } return(list); }