/// <summary>
 /// Creates a raw TaskSqlCommand
 /// </summary>
 public TaskSqlCommand CreateCommand()
 {
     this.InitializeConnection();
     SqlCommand cmd = this._connection.CreateCommand();
     TaskSqlCommand tcmd = new TaskSqlCommand(cmd);
     return tcmd;
 }
 /// <summary>
 /// Creates a TaskSqlCommand for a string sql command.
 /// </summary>
 /// <remarks>Avoid using this method.</remarks>
 public TaskSqlCommand CreateTextCommand(string commandText)
 {
     this.InitializeConnection();
     SqlCommand cmd = this._connection.CreateCommand();
     cmd.CommandText = commandText;
     cmd.CommandType = CommandType.Text;
     TaskSqlCommand tcmd = new TaskSqlCommand(cmd);
     return tcmd;
 }
 /// <summary>
 /// Creates a TaskSqlCommand for a stored procedure provided
 /// </summary>
 public TaskSqlCommand CreateStoredProcCommand(string storedProcName)
 {
     this.InitializeConnection();
     SqlCommand cmd = this._connection.CreateCommand();
     cmd.CommandText = storedProcName;
     cmd.CommandType = CommandType.StoredProcedure;
     TaskSqlCommand tcmd = new TaskSqlCommand(cmd);
     return tcmd;
 }
 public XmlReader ExecuteXmlReader(TaskSqlCommand cmd)
 {
     try
     {
         XmlReader reader = cmd.Command.ExecuteXmlReader();
         return reader;
     }
     catch (SqlException sqlex)
     {
         if (sqlex.Number == 50000)
         {
             throw new UserFriendlyDBException(sqlex.Message, sqlex);
         }
         else
         {
             throw new DalException(sqlex, "SqlException occured in ExecuteXmlReader. {0}", sqlex.Message);
         }
     }
     catch (Exception ex)
     {
         throw new DalException(ex, "Error occured in ExecuteXmlReader. {0}", ex.Message);
     }
 }
 ///<summary>
 /// Executes command and returns a single object
 /// </summary>
 public object ExecuteScalar(TaskSqlCommand cmd)
 {
     try
     {
         return cmd.Command.ExecuteScalar();
     }
     catch (SqlException sqlex)
     {
         if (sqlex.Number == 50000)
         {
             throw new UserFriendlyDBException(sqlex.Message, sqlex);
         }
         else
         {
             throw new DalException(sqlex, "SqlException occured in ExecuteScalar. {0}", sqlex.Message);
         }
     }
     catch (Exception ex)
     {
         throw new DalException(ex, "Error occured in ExecuteScalar. {0}", ex.Message);
     }
 }
 /// <summary>
 /// Executes command as DataTable. For strongly typed programming model this is not recommended.
 /// </summary>
 public DataTable ExecuteDataTable(TaskSqlCommand cmd)
 {
     try
     {
         DataTable dt = new DataTable();
         System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(cmd.Command);
         da.Fill(dt);
         return dt;
     }
     catch (SqlException sqlex)
     {
         if (sqlex.Number == 50000)
         {
             throw new UserFriendlyDBException(sqlex.Message, sqlex);
         }
         else
         {
             throw new DalException(sqlex, "SqlException occured in ExecuteDataTable. {0}", sqlex.Message);
         }
     }
     catch (Exception ex)
     {
         throw new DalException(ex, "Error occured in ExecuteDataTable. {0}", ex.Message);
     }
 }
 /// <summary>
 /// Provides a forward-readonly access to the database. This is the fasted way to retrieve data.
 /// </summary>        
 public SqlDataReader ExecuteDataReader(TaskSqlCommand cmd)
 {
     try
     {
         System.Data.SqlClient.SqlDataReader dr = cmd.Command.ExecuteReader();
         return dr;
     }
     catch (SqlException sqlex)
     {
         if (sqlex.Number == 50000)
         {
             throw new UserFriendlyDBException(sqlex.Message, sqlex);
         }
         else
         {
             throw new DalException(sqlex, "SqlException occured in ExecuteDataReader. {0}", sqlex.Message);
         }
     }
     catch (Exception ex)
     {
         throw new DalException(ex, "Error occured in ExecuteDataReader. {0}", ex.Message);
     }
 }
        /// <summary>
        /// Creates a TaskSqlCommand for a string sql command.
        /// </summary>
        /// <remarks>Avoid using this method.</remarks>
        public TaskSqlCommand CreateTextCommand(string commandFormatText, params object[] args)
        {
            SqlCommand cmd = this._connectionForTransaction.CreateCommand();
            cmd.CommandText = string.Format(commandFormatText, args);
            cmd.CommandType = CommandType.Text;

            TaskSqlCommand tcmd = new TaskSqlCommand(cmd, _transaction);
            return tcmd;
        }
        /// <summary>
        /// Creates a TaskSqlCommand for a string sql command.
        /// </summary>
        /// <remarks>Avoid using this method.</remarks>
        public TaskSqlCommand CreateTextCommand(string commandText)
        {
            SqlCommand cmd = this._connectionForTransaction.CreateCommand();
            cmd.CommandText = commandText;
            cmd.CommandType = CommandType.Text;

            TaskSqlCommand tcmd = new TaskSqlCommand(cmd, _transaction);
            return tcmd;
        }
        /// <summary>
        /// Creates a TaskSqlCommand for a stored procedure provided
        /// </summary>
        public TaskSqlCommand CreateStoredProcCommand(string storedProcName)
        {
            SqlCommand cmd = this._connectionForTransaction.CreateCommand();
            cmd.CommandText = storedProcName;
            cmd.CommandType = CommandType.StoredProcedure;

            TaskSqlCommand tcmd = new TaskSqlCommand(cmd, _transaction);
            return tcmd;
        }
 /// <summary>
 /// Creates a raw TaskSqlCommand
 /// </summary>
 public TaskSqlCommand CreateCommand()
 {
     SqlCommand cmd = this._connectionForTransaction.CreateCommand();
     TaskSqlCommand tcmd = new TaskSqlCommand(cmd, _transaction);
     return tcmd;
 }
 /// <summary>
 /// Creates a TaskSqlCommand for a string sql command.
 /// </summary>
 /// <remarks>Avoid using this method.</remarks>
 public TaskSqlCommand CreateTextCommand(string commandFormatText, params object[] args)
 {
     this.InitializeConnection();
     SqlCommand cmd = this._connection.CreateCommand();
     cmd.CommandText = string.Format(commandFormatText, args);
     cmd.CommandType = CommandType.Text;
     TaskSqlCommand tcmd = new TaskSqlCommand(cmd);
     return tcmd;
 }
 /// <summary>
 /// Executes command as Non Query. Best for Update/Delete operations.
 /// </summary>
 /// <returns>Number of rows affected.</returns>
 public int ExecuteNonQuery(TaskSqlCommand cmd)
 {
     try
     {
         int ret = cmd.Command.ExecuteNonQuery();
         return ret;
     }
     catch (SqlException sqlex)
     {
         if (sqlex.Number == 50000)
         {
             throw new UserFriendlyDBException(sqlex.Message, sqlex);
         }
         else
         {
             throw new DalException(sqlex, "SqlException occured in ExectuteNonQuery. {0}", sqlex.Message);
         }
     }
     catch (Exception ex)
     {
         throw new DalException(ex, "Error occured in ExecuteNonQuery. {0}", ex.Message);
     }
     finally
     {
         this.DisposeConnection();
     }
 }
 /// <summary>
 /// Executes command as DataSet. For strongly typed programming model this is not recommended.
 /// </summary>
 public DataSet ExecuteDataSet(TaskSqlCommand cmd)
 {
     try
     {
         DataSet ds = new DataSet();
         System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(cmd.Command);
         da.Fill(ds);
         return ds;
     }
     catch (SqlException sqlex)
     {
         if (sqlex.Number == 50000)
         {
             throw new UserFriendlyDBException(sqlex.Message, sqlex);
         }
         else
         {
             throw new DalException(sqlex, "SqlException occured in ExecuteDataSet. {0}", sqlex.Message);
         }
     }
     catch (Exception ex)
     {
         throw new DalException(ex, "Error occured in ExecuteDataSet. {0}", ex.Message);
     }
     finally
     {
         this.DisposeConnection();
     }
 }