コード例 #1
0
        // Cadastrar nova obra no banco de dados
        public int cadastrar(Obra objObra)
        {
            Banco db;
            int   endereco_codigo;
            int   obra_codigo;

            try
            {
                db                     = new Banco();
                db.transacao           = Banco.conexao.BeginTransaction();
                db.comando.CommandText = "INSERT INTO endereco (cep, rua, numero, bairro, cidade, uf) VALUES (@ce, @ru, @nu, @ba, @ci, @uf)";
                db.comando.Parameters.Add("@ce", MySqlDbType.VarChar).Value = objObra.getEndereco().getCEP();
                db.comando.Parameters.Add("@ru", MySqlDbType.VarChar).Value = objObra.getEndereco().getRua();
                db.comando.Parameters.Add("@nu", MySqlDbType.Int32).Value   = objObra.getEndereco().getNumero();
                db.comando.Parameters.Add("@ba", MySqlDbType.VarChar).Value = objObra.getEndereco().getBairro();
                db.comando.Parameters.Add("@ci", MySqlDbType.VarChar).Value = objObra.getEndereco().getCidade();
                db.comando.Parameters.Add("@uf", MySqlDbType.VarChar).Value = objObra.getEndereco().getUF();
                db.comando.Prepare();
                db.comando.ExecuteNonQuery();
                if (db.comando.LastInsertedId != 0)
                {
                    db.comando.Parameters.Add(new MySqlParameter("codigo", db.comando.LastInsertedId));
                }
                endereco_codigo = Convert.ToInt32(db.comando.Parameters["@codigo"].Value);
                try
                {
                    db.comando.CommandText = "INSERT INTO obra(status, endereco_codigo, cliente_nome) VALUES(@s, @ec, @n)";
                    db.comando.Parameters.Add("@s", MySqlDbType.VarChar).Value = "Não Iniciada";
                    db.comando.Parameters.Add("@ec", MySqlDbType.Int32).Value  = endereco_codigo;
                    db.comando.Parameters.Add("@n", MySqlDbType.VarChar).Value = objObra.getClienteNome();
                    db.comando.Prepare();
                    db.comando.ExecuteNonQuery();
                    if (db.comando.LastInsertedId != 0)
                    {
                        db.comando.Parameters.Add(new MySqlParameter("obraCodigo", db.comando.LastInsertedId));
                    }
                    obra_codigo = Convert.ToInt32(db.comando.Parameters["@obraCodigo"].Value);
                    db.transacao.Commit();
                    return(obra_codigo);
                }
                catch (Exception ex)
                {
                    db.transacao.Rollback();
                    throw new Exception(ex.Message);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao Cadastrar a Obra na Base de Dados: " + ex.Message);
            }
        }