/// <summary> /// Carrega os campos do objeto alvo /// </summary> /// <param name="nomeObjeto">nome do objeto</param> /// <param name="tipo">tipo do objeto (tabela,view,procedure)</param> private void CarregaCamposObjeto(string nomeObjeto, TipoObjetoBanco.ETipoObjeto tipo) { try { if (ObjetosSelecionado.Key == null) { var colunasObjeto = new List<DadosColunas>(); switch (tipo) { case TipoObjetoBanco.ETipoObjeto.Tabela: colunasObjeto = Gerador.MapeamentoTabela.ListAllFieldsFromTable(BancoSelecionado, nomeObjeto, DadosLogin); break; case TipoObjetoBanco.ETipoObjeto.View: colunasObjeto = Gerador.MapeamentoView.ListAllFieldsFromViews(BancoSelecionado, nomeObjeto, DadosLogin); break; case TipoObjetoBanco.ETipoObjeto.Procedure: Parametros = Gerador.MapeamentoProcedure.ListaAllStoredProceduresParameters(BancoSelecionado, DadosLogin, nomeObjeto); if (Parametros.Count > 0) { var frm = new frmParametros { Parametros = Parametros }; if (frm.ShowDialog(this) == DialogResult.Yes) { Parametros = frm.Parametros; } frm.Dispose(); } if (MessageBox.Show(string.Format("Algumas procedures podem desencadear uma sequencia de insert's, update's e delete's.\nExecute apenas procedures que você conheça o funcionamento e que retornem dados.\nDeseja executar a procedure '{0}' ?", nomeObjeto), "ATENÇÃO", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { colunasObjeto = Gerador.MapeamentoProcedure.ListAllFieldsFromStoredProcedure(BancoSelecionado, nomeObjeto, Parametros, DadosLogin); } break; case TipoObjetoBanco.ETipoObjeto.Query: colunasObjeto = Colunas; break; default: throw new ArgumentOutOfRangeException("tipo", "Tipo inválido"); } ObjetosSelecionado = tipo == TipoObjetoBanco.ETipoObjeto.Query ? new KeyValuePair<TipoObjetoBanco, List<DadosColunas>>(new TipoObjetoBanco(nomeObjeto, tipo.ToString(), Parametros, Consulta), colunasObjeto) : new KeyValuePair<TipoObjetoBanco, List<DadosColunas>>(new TipoObjetoBanco(nomeObjeto, tipo.ToString(), Parametros), colunasObjeto); } GridView.CarregaGridViewColunas(gvColunasObjeto, ObjetosSelecionado, IlObjetos); } catch (Exception ex) { MessageBox.Show(string.Format("Erro:\n{0}", ex.Message), ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void lvObjetosBanco_ItemCheck(object sender, ItemCheckEventArgs e) { if (lvObjetosBanco.Items[e.Index].Group == lvObjetosBanco.Groups["procedure"] && e.NewValue == CheckState.Checked) { var nomesTiposObjeto = new TipoObjetoBanco(lvObjetosBanco.Items[e.Index].Text, lvObjetosBanco.Items[e.Index].SubItems[4].Text, new List<DadosStoredProceduresParameters>()); Parametros = Gerador.MapeamentoProcedure.ListaAllStoredProceduresParameters(BancoSelecionado, DadosLogin, lvObjetosBanco.Items[e.Index].Text); if (Parametros.Count > 0) { var frm = new frmParametros { Parametros = Parametros }; if (frm.ShowDialog(this) == DialogResult.Yes) { nomesTiposObjeto.Parametros = frm.Parametros; } else { MessageBox.Show("Não é possivel carregar os dadso da StoredProcedure sem o preenchimento dos parametros", "", MessageBoxButtons.OK, MessageBoxIcon.Information); e.NewValue = CheckState.Unchecked; return; } frm.Dispose(); } _imgObjetosMapeados.Add(new KeyValuePair<string, Image>(lvObjetosBanco.Items[e.Index].Text, ilIcones.Images["cheked"])); _objetosSelecionados.Add(new KeyValuePair<TipoObjetoBanco, List<DadosColunas>>(nomesTiposObjeto, CarregaCamposObjeto(nomesTiposObjeto.NomeObjeto, nomesTiposObjeto.TipoObjeto, true))); } if (e.NewValue == CheckState.Unchecked) { _objetosSelecionados = _objetosSelecionados.Where(o => o.Key.NomeObjeto != lvObjetosBanco.Items[e.Index].Text).ToList(); _imgObjetosMapeados = _imgObjetosMapeados.Where(o => o.Key != lvObjetosBanco.Items[e.Index].Text).ToList(); } }