// 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); } }