private void frmAdvancedSearch_FormClosed(object sender, FormClosedEventArgs e) { FormSet f = ((FormSet)Propriedades.FormMain.ActiveMdiChild); Funcoes func; func.TratarStatus_BarraFerramentas(f.FormStatus, f.Tipo_Formulario); f.Movimentar_Registro(Movimento.Atualizar_Atual); }
/// <summary> /// Excluir os registros das tabelas filhas e depois os da tabela pai. /// </summary> /// <param name="fForm">Formulário que está sendo trabalhado.</param> /// <returns>true/false caso consiga atualizar tudo.</returns> public bool Excluir_Dados(FormSet fForm) { bool bRetorno = false; SqlConnection db = new SqlConnection(Propriedades.StringConexao); try { db.Open(); //-- filtra somente tabelas pai. IList <Controle_Tabelas> iTab = ((List <Controle_Tabelas>) fForm.Tabelas).FindAll( new Predicate <Controle_Tabelas>(delegate(Controle_Tabelas obj) { return(obj.TipoTabela == Controle_Tabelas.TiposTabelas.Filha); })); //-- Loop para atualiza todos os filhos foreach (Controle_Tabelas ct in iTab) { //-- Monta todas os updates para atualização no banco de dados. SqlDataAdapter da = new SqlDataAdapter(string.Format("select * from {0}", ct.NomeTabela), db); try { SqlCommandBuilder cb = new SqlCommandBuilder(da); cb.ConflictOption = ConflictOption.CompareRowVersion; cb.SetAllValues = false; da.UpdateBatchSize = 100; da.Update(fForm.DataSetLocal, ct.NomeTabela); bRetorno = true; } catch { MsgBox.Show("Não foi possivel excluir registro.", "Alerta - FILHA", MessageBoxButtons.OK, MessageBoxIcon.Error); fForm.DataSetLocal.RejectChanges(); bRetorno = false; goto Erro; } } //-- filtra somente tabelas pai. iTab = ((List <Controle_Tabelas>) fForm.Tabelas).FindAll( new Predicate <Controle_Tabelas>(delegate(Controle_Tabelas obj) { return(obj.TipoTabela == Controle_Tabelas.TiposTabelas.Pai); })); //-- Loop para atualiza todos os pai foreach (Controle_Tabelas ct in iTab) { //-- Monta todas os updates para atualização no banco de dados. SqlDataAdapter da = new SqlDataAdapter(string.Format("select * from {0}", ct.NomeTabela), db); try { SqlCommandBuilder cb = new SqlCommandBuilder(da); cb.ConflictOption = ConflictOption.CompareRowVersion; cb.SetAllValues = false; da.UpdateBatchSize = 100; da.Update(fForm.DataSetLocal, ct.NomeTabela); bRetorno = true; } catch { MsgBox.Show("Não foi possivel excluir registro.", "Alerta - PAI", MessageBoxButtons.OK, MessageBoxIcon.Error); fForm.DataSetLocal.RejectChanges(); fForm.Movimentar_Registro(CompSoft.Movimento.Voltar); bRetorno = false; goto Erro; } } //-- Aceita todas as alterações realizadas. fForm.DataSetLocal.AcceptChanges(); } catch (Exception ex) { MsgBox.Show(string.Format("ERRO AO EXCLUIR DADO REGISTRO DA TABELA.\n{0}", ex.Message), "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Warning); bRetorno = false; } finally { db.Close(); } Erro: return(bRetorno); }
private void frmListaRegistrosPai_FormClosed(object sender, FormClosedEventArgs e) { //-- Atualiza o registro atual. f.Movimentar_Registro(Movimento.Atualizar_Atual); }