//============================================================================================================= private void btExcluir_Click(object sender, EventArgs e) // https://youtu.be/U_JhTWIVRro?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA { //tem que excluir os itens relacionados em todas as tabelas em um sequencia logica: //tem que excluir na sequencia inversa em que se gravou a compra //----------------------------------------------------------------------------------------------------------------------- //CONEXAO: //----------------------------------------------------------------------------------------------------------------------- DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao); //Recebe a string da conexão da classe DadosDaConexão try //CONEXAO: { //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //CONEXAO: INCIAR TRANSAÇÃO //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cx.Conectar(); //CONECTAR NO BANCO - para poder usar a transação, tem que ser usado aénas uma conexao, antes cada tabela teinha seu conetar cx.IniciarTransacao(); //inicia transação no banco SQL - Feito para acoes que envolvem mais de uma tabela https://youtu.be/fA_T1ywEXqw //Validar, excluir compra se ja tiver sido efetuado alguma pagamento: try { DialogResult d = MessageBox.Show("Deseja excluir o registro?", "Aviso", MessageBoxButtons.YesNo);//confirmar antes de excluir //caso responder sim... if (d.ToString() == "Yes") { //pega o codigo da compra: int CodigoCompra = Convert.ToInt32(txtComCod.Text); //criar objetos BLL: BLLParcelasCompra bllPar = new BLLParcelasCompra(cx); BLLItensCompra bllITen = new BLLItensCompra(cx); BLLCompra bllCP = new BLLCompra(cx); //passa a string de conexao //verificar se tem parcelas pagas: int Qtde = bllCP.QuantidadeParcePagas(CodigoCompra); if (Qtde > 0) //se tiver parcelas pagas { DialogResult g = MessageBox.Show("Esta Compra possui Parcelas Pagas Deseja! \n Deseja excluir o registro?", "Aviso", MessageBoxButtons.YesNo); //confirmar antes de excluir //caso responder sim... if (g.ToString() == "No") { //cancela esta ação: cx.TerminarTransacao(); //Efetua um comit, confirmar as alterações no banco cx.Desconectar(); //desconetar do banco return; } } //--------------------------------------------------------------------------------------------------------------------------- //03 - Excluir as parcelas da compra: //--------------------------------------------------------------------------------------------------------------------------- bllPar.ExcluirTodasAsParcelas(CodigoCompra); //--------------------------------------------------------------------------------------------------------------------------- //02 - Excluir itens da compra: //--------------------------------------------------------------------------------------------------------------------------- bllITen.ExcluirTodosOsItens(CodigoCompra); //--------------------------------------------------------------------------------------------------------------------------- //01 - Excluir compra: //--------------------------------------------------------------------------------------------------------------------------- bllCP.Excluir(Convert.ToInt32(txtComCod.Text));//retorna erro se este codigo ja estiver sendo utilizado como chave em outra tabela //Mensagem de sucesso: MessageBox.Show("Cadastro excluido com sucesso!"); } } catch // sem o Exception, qualquer tipo de erro { MessageBox.Show("Impossível excluir o registro. \n O registro esta sendo utilizado em outro local."); this.alteraBotoes(3); cx.CancelarTransacao(); //caso de erro desfaz todas as ações cx.Desconectar(); //desconetar do banco } this.LimpaTela(); this.alteraBotoes(1); //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //CONEXAO: TERMINAR TRANSAÇÃO //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //so vai gravar, se for nas tres tabelas cx.TerminarTransacao(); //Efetua um comit, confirmar as alterações no banco cx.Desconectar(); //desconetar do banco } catch (Exception erro) // caso der algum erro...(não limpa a tela) { MessageBox.Show("Erro ao gravar dados da Compra : \n" + erro.Message); //retorna mensagem do sistema, melhorar mensagem para o usuario cx.CancelarTransacao(); //caso de erro desfaz todas as ações cx.Desconectar(); //desconetar do banco } }
//============================================================================================================= private void btAlterar_Click(object sender, EventArgs e) //https://youtu.be/NRKmeODwsB4?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA&t=277 { //----------------------------------------------------------------------------------------------------------------------- //CONEXAO: //----------------------------------------------------------------------------------------------------------------------- DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao); //Recebe a string da conexão da classe DadosDaConexão try //CONEXAO: { //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //CONEXAO: INCIAR TRANSAÇÃO //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cx.Conectar(); //CONECTAR NO BANCO - para poder usar a transação, tem que ser usado aénas uma conexao, antes cada tabela teinha seu conetar cx.IniciarTransacao(); //inicia transação no banco SQL - Feito para acoes que envolvem mais de uma tabela https://youtu.be/fA_T1ywEXqw //nao deixar alterar compra se ja tiver sido efetuado alguma pagamento: try { //pega o codigo da compra: int CodigoCompra = Convert.ToInt32(txtComCod.Text); //criar objetos BLL: BLLCompra bllCP = new BLLCompra(cx); //passa a string de conexao //Validar se tem parcelas pagas: int Qtde = bllCP.QuantidadeParcePagas(CodigoCompra); //se tiver parcelas pagas if (Qtde > 0) { DialogResult g = MessageBox.Show("Esta Compra possui Parcelas Pagas! \n Deseja alterar o registro?", "Aviso", MessageBoxButtons.YesNo);//confirmar antes de excluir //caso responder sim... if (g.ToString() == "No") { cx.TerminarTransacao(); //Efetua um comit, confirmar as alterações no banco cx.Desconectar(); //desconetar do banco return; } } } catch // sem o Exception, qualquer tipo de erro { MessageBox.Show("Impossível excluir o registro. \n O registro esta sendo utilizado em outro local."); this.alteraBotoes(3); } //Liberar alterar this.operacao = "alterar"; this.alteraBotoes(2); //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //CONEXAO: TERMINAR TRANSAÇÃO //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //so vai gravar, se for nas tres tabelas cx.TerminarTransacao(); //Efetua um comit, confirmar as alterações no banco cx.Desconectar(); //desconetar do banco } catch (Exception erro) // caso der algum erro...(não limpa a tela) { MessageBox.Show("Erro ao gravar dados da Compra : \n" + erro.Message); //retorna mensagem do sistema, melhorar mensagem para o usuario cx.CancelarTransacao(); //caso de erro desfaz todas as ações cx.Desconectar(); //desconetar do banco } }