Exemplo n.º 1
0
        public bool Gravar(Usuario usuario)
        {
            bool ok = false;

            #region Usar outra conexão para transações que precisam se manterem abertas, como o Gravar() varios itens de tabelas diferentes ou vários selects

            MySqlPersistence _localbd = new MySqlPersistence(true);             // true mantem a conexao aberta

            #endregion

            try
            {
                _localbd.IniciarTransacao();                 // a partir daqui, abre transação e o codigo está protegido

                // Mapeamento Objeto-Relacional --> transformar objeto em linha de tabela do banco
                string sql =
                    @"INSERT usuario (Nome, Email, Senha) 
					VALUES (@Nome, @Email, @Senha)"                    ;

                Dictionary <string, object> parametros = new Dictionary <string, object>();

                parametros.Add("@Nome", usuario.Nome);
                parametros.Add("@Email", usuario.Email);
                parametros.Add("@Senha", usuario.Senha);

                int qtdeLinhas = _localbd.ExecuteNonQuery(sql, parametros);
                ok = qtdeLinhas > 0;

                // confirma transacao
                _localbd.TransacaoCommit();
            }
            catch
            {
                _localbd.TransacaoRollback();
            }
            finally
            {
                _localbd.Fechar();
            }

            return(ok);
        }