public void Save(Pessoa pessoa)
        {
            ErrorMessage = string.Empty;

            if (pessoa == null)
            {
                ErrorMessage = "NULL Entity";
                return;
            }

            Conexao.Open();
            Transacao = Conexao.BeginTransaction();

            try
            {
                Db.Pessoa.AddOrUpdate(pessoa);

                Db.SaveChanges();
                Transacao.Commit();
            }
            catch (Exception ex)
            {
                ErrorMessage = ex.Message;
                Transacao.Rollback();
            }

            Conexao.Close();
        }
        public void Save(Pessoa pessoa)
        {
            ErrorMessage = string.Empty;

            if (pessoa == null)
            {
                ErrorMessage = "Pessoa não carregada";
                return;
            }

            Conexao.Open();
            Transacao = Conexao.BeginTransaction();

            try
            {
                Db.Pessoas.AddOrUpdate(pessoa);

                Db.SaveChanges();
                Transacao.Commit();
            }
            catch (Exception ex)
            {
                ErrorMessage = "Erro ao Cadastrar";
                Transacao.Rollback();
            }

            Conexao.Close();
        }
예제 #3
0
        //===============================================================================================

        /// <summary>
        /// Executa queries INSERT, UPDATE, DELETE, CREATE TABLE, CREATE DATABASE
        /// </summary>
        /// <param name="query"></param>
        /// <param name="parametros"></param>
        public void EXE_NON_QUERY(string query, List <SQLParametro> parametros = null)
        {
            using (Conexao = new MySqlConnection(Str_Conn))
            {
                try
                {
                    Conexao.Open();
                    Transacao = Conexao.BeginTransaction();
                    //using (Cmd = new MySqlCommand(query, Conexao))

                    using (Cmd = new MySqlCommand(query, Conexao, Transacao))
                        Cmd.Parameters.Clear(); //Efetuando a limpeza caso haja parametros.

                    //verifica se parametros é diferente de Null, ou seja, se tem dados, assim ele add aos parametros do COMANDO
                    if (parametros != null)
                    {
                        foreach (SQLParametro p in parametros)
                        {
                            Cmd.Parameters.AddWithValue(p.Parametro, p.Valor);
                        }
                    }

                    /*
                     * O DANILO(TORNA-SE UM PROGRAMADOR) fez algo do tipo:
                     * pedido.clienteID = Convert.toINT32(cmd.ExecuteScalar()) - ->Aqui ele capturou o id a ser salvo(Commit não executado ainda)
                     *
                     * https://www.youtube.com/watch?v=dt1u_UUH4Ro
                     *
                     * RESOLVER ESSE TRECHO AQUI PARA QUE RETORNE O ID INSERIDO OU ID REFERENTE A ALTERAÇÃO
                     *
                     * var linhaafetada = cmd.ExecuteNonQuery();
                     * if (linhaafetada > 0)
                     * {
                     *  cmd.CommandText = "SELECT @@IDENTITY";
                     *  DTO.EstadoId = Convert.ToInt16(cmd.ExecuteScalar());
                     * }
                     */

                    Cmd.ExecuteNonQuery();

                    //===================
                    Transacao.Commit();
                    parametros[0].Valor = Cmd.LastInsertedId;
                    //===================
                }
                catch (SqlException exSQL)
                {
                    Transacao.Rollback();
                    MessageBox.Show("Erro-SQL: " + exSQL.Message);
                }
                catch (Exception ex)
                {
                    Transacao.Rollback();
                    MessageBox.Show("Erro: " + ex.Message);
                }
            }
        }
예제 #4
0
        protected object ExecutarScalar(string command)
        {
            try
            {
                Conexao = MyDatabase.CreateConnection();
                Conexao.Open();

                if (UsarTransacao)
                {
                    Transacao = Conexao.BeginTransaction();
                }

                MyCommand = MyDatabase.GetStoredProcCommand(command);
                VincularParametros();

                MyCommand.Connection = Conexao;

                var retorno = MyCommand.ExecuteScalar();

                if (UsarTransacao)
                {
                    Transacao.Commit();
                }

                return(retorno);
            }
            catch (Exception e)
            {
                if (UsarTransacao)
                {
                    Transacao.Rollback();
                }

                if (!UsarException)
                {
                    return(null);
                }


                throw new Exception(e.Message);
            }
            finally
            {
                if (MyCommand != null)
                {
                    MyCommand.Dispose();
                }
                if (Conexao != null)
                {
                    Conexao.Dispose();
                    Conexao.Close();
                }
            }
        }
예제 #5
0
        protected void Executar(string command, CommandType commandType)
        {
            try
            {
                Conexao = MyDatabase.CreateConnection();
                Conexao.Open();

                if (UsarTransacao)
                {
                    Transacao = Conexao.BeginTransaction();
                }

                MyCommand = (commandType == CommandType.StoredProcedure) ? MyDatabase.GetStoredProcCommand(command)
                                                                         : MyDatabase.GetSqlStringCommand(command);
                VincularParametros();

                MyCommand.Connection = Conexao;

                MyCommand.ExecuteNonQuery();

                if (UsarTransacao)
                {
                    Transacao.Commit();
                }
            }

            catch (SqlException sq)
            {
                if (UsarTransacao)
                {
                    Transacao.Rollback();
                }
                throw new Exception(sq.Message);
            }
            finally
            {
                if (MyCommand != null)
                {
                    MyCommand.Dispose();
                }
                if (Conexao != null)
                {
                    Conexao.Dispose();
                    Conexao.Close();
                }
            }
        }
예제 #6
0
        protected int ExecutarAtualizacao(string sql, Dictionary <string, object> parametros = null, bool carregarId = true)
        {
            int id = 0;

            using (Conexao)
            {
                using (Comando)
                {
                    Conexao.ConnectionString = ConexaoDBFactory.ObterStringDeConexao(Tipo).ConnectionString;


                    Comando.Parameters.Clear();
                    Comando.Connection = Conexao;

                    Comando.CommandText = sql.FormatarSQL(Tipo, carregarId);

                    Conexao.Open();

                    Transacao           = Conexao.BeginTransaction();
                    Comando.Transaction = Transacao;
                    Comando.AdicionarParametros(parametros);

                    try
                    {
                        if (carregarId)
                        {
                            id = Convert.ToInt32(Comando.ExecuteScalar());
                        }
                        else
                        {
                            Comando.ExecuteNonQuery();
                        }
                        Transacao.Commit();
                    }
                    catch (Exception e)
                    {
                        Transacao.Rollback();
                        throw e;
                    }
                }
            }

            return(id);
        }
        public void Delete(Pessoa pessoa)
        {
            ErrorMessage = string.Empty;

            if (pessoa == null)
            {
                ErrorMessage = "NULL Entity";
                return;
            }

            Conexao.Open();
            Transacao = Conexao.BeginTransaction();

            try
            {
                Pessoa p = GetById(pessoa.PessoaId);

                if (p == null)
                {
                    return;
                }

                if (Db.Entry(pessoa).State == EntityState.Detached)
                {
                    Db.Entry(p).State = EntityState.Modified;
                }

                Db.Pessoa.Remove(p);
                Db.SaveChanges();
                Transacao.Commit();
            }
            catch (Exception ex)
            {
                ErrorMessage = ex.Message;
                Transacao.Rollback();
            }

            Conexao.Close();
        }