none
referência de objeto não definida para uma instância de um objeto. c# RRS feed

  • Pergunta

  • Pessoal estou com um problema que não estou conseguindo achar,  quando executo meu programa para excluir algum registro me aparece essa mensagem "referência de objeto não definida para uma instância de um objeto. c#"

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    using BLL;
    using DTO;
    
    namespace APP_UI
    {
        public partial class frmFinanceiro : Form
        {
            List<PesquisaGeralDTO> ListaCampos = new List<PesquisaGeralDTO>();
            mdi_principal mdi_Principal = null;
    
    
            public frmFinanceiro(mdi_principal mdi)
            {
                InitializeComponent();
                mdi_Principal = mdi;
                this.MdiParent = mdi;
            }
            private void FrmFinanceiro_Load(object sender, EventArgs e)
            {
                PopularGrid();
            }
    
            private void DtgDados_CellContentClick(object sender, DataGridViewCellEventArgs e)
            {
    
            }
    
            private void BtnAdicionar_Click(object sender, EventArgs e)
            {
                try
                {
                    frmCad_Financeiro frmCad_Financeiro = new frmCad_Financeiro();
                    DialogResult result = frmCad_Financeiro.ShowDialog();
                    if (result == DialogResult.OK)
                    {
                        PopularGrid();
                    }
                }
                catch (Exception ex)
                {
    
                    throw ex;
                }
            }
    
    
    
    
            void PopularGrid()
            {
                try
                {
                    StringBuilder sbSql = new StringBuilder();
                    sbSql.Append("Select * from financeiro");
    
                    //Monta o grid e recupera as colunas utilizadas para pesquisa
                    DataTable dtt = new PesquisaGeralBLL().Pesquisa(sbSql.ToString(), ListaCampos);
                    dtgDados.DataSource = dtt; //Vincula o datatable ao datagrid
                    dtgDados.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); //Redimenciona as colunas de acordo com o conteúdo do campo
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Erro ao carregar os dados", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
    
            private void btnAlterar_Click(object sender, EventArgs e)
            {
                try
                {
    
                    //Setando o mousepointer para ocupado.
                    Cursor.Current = Cursors.WaitCursor;
    
                    //Verifica se existem registros no datagrid
                    if (dtgDados.RowCount == 0)
                    {
                        return;
                    }
    
                    //Visualizando o registro selecionado
                    int Id = Convert.ToInt32(dtgDados.CurrentRow.Cells["ID"].Value.ToString());
                    if (Id != 0)
                    {
                        frmCad_Financeiro frmCad_Financeiro = new frmCad_Financeiro(Id);
                        DialogResult result = frmCad_Financeiro.ShowDialog();
                        if (result == DialogResult.OK)
                            PopularGrid();
                    }
                    else
                    {
                        throw new Exception("O Descricao do registro selecionado está incorreto!");
                    }
    
    
    
    
                }
                catch (NullReferenceException)
                {
                    MessageBox.Show("Nenhum registro válido foi selecionado!", "Não foi possível a visualização do registro", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Não foi possível a visualização do registro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
    
            private void dtgDados_DoubleClick(object sender, EventArgs e)
            {
                btnAlterar_Click(sender, e);
            }
    
            private void btnLocalizar_Click(object sender, EventArgs e)
            {
    
            }
    
            private void btnExcluir_Click(object sender, EventArgs e)
    
            {
                try
                {
                    int id = Convert.ToInt32(dtgDados.CurrentRow.Cells["ID"].Value.ToString());
    
                    bool result = new FINANCEIRO_BLL(new Connection().Get_Connection).Excluir(id);
                    if (result)
                    {
                        MessageBox.Show("Registro" + id + "excluído com sucesso!");
                    }
                    else
                    {
                        MessageBox.Show("Nao foi possível excluir este registro!");
                    }
                }
                catch (Exception ex)
                {
    
                 throw ex;
    
                }
            }
    
        }
    }
    
    BLL
    
     public bool Excluir(int id)
            {
                return DAO.Excluir(id);
            }
    
    DAO
    
    public bool Excluir(int ID)
            {
                using (SqlConnection conexao = new SqlConnection(this.strConnection))
                {
                    SqlCommand cmd = new SqlCommand("DELETE FROM FINANCEIRO WHERE ID = " + ID, conexao);
                    try
                    {
                        conexao.Open();
                        cmd.ExecuteNonQuery();
                        return true;
                }
                catch (Exception ex)
                    {
                        return false;
                    }
                    finally
                    {
                        conexao.Close();
                    }
                }
            }
    


    Se vocês poderem me ajudar, Por Favor.



    • Editado JoaoLameu quinta-feira, 15 de agosto de 2019 16:46
    • Editado IgorFKModerator quinta-feira, 15 de agosto de 2019 17:12 Formatação
    quinta-feira, 15 de agosto de 2019 16:22

Todas as Respostas

  • Boa tarde, tudo bem?

    Você pode nos informar para qual linha este erro está apontando?

    Atenciosamente, 


    Igor F. Kunrath

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 15 de agosto de 2019 17:22
    Moderador
  • using BLL;
    using DTO;
    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Linq;
    using System.Reflection;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace APP_UI
    {
        static class Program
        {
            /// <summary>
            /// Ponto de entrada principal para o aplicativo.
            /// </summary>
            [STAThread]
            static void Main()
            {
                try
                {
                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);
                    //Application.Run(new frmLogin());
                    //Instancia as propriedades estáticas do login
                    SysBLL.UserLogin = new LOGIN_DTO();

                    //Ler os parametros do Arquivo appconfig.xml para montar a string de conexão com o Sql Server e guarda StringConection
                    AppSettingsReader readerSettings = new AppSettingsReader();

                    //StringBuilder sb = new StringBuilder();
                    //sb.Append("Data Source=" + readerSettings.GetValue("DataSource", typeof(string)).ToString());
                    //sb.Append(";Connect Timeout=120");
                    //sb.Append(";Initial Catalog=" + readerSettings.GetValue("DataBase", typeof(string)).ToString());
                    //sb.Append(";User ID=" + readerSettings.GetValue("UserDB", typeof(string)).ToString());
                    //sb.Append(";Password=" + readerSettings.GetValue("PassWord", typeof(string)).ToString());

                    SysBLL.strConexao = new Connection().Get_Connection();


                    //Recuperando atributos e versão do módulo
                    Assembly Modulo = Assembly.GetExecutingAssembly();
                    //SysBLL.InfoModuloDTO = RecursosGlobaisBLL.InfoModulo(ref Modulo);

                    /*Ler os parametros de entrada da aplicação e verifica se foi definido um usuário,caso positivo o sistema tenta fazer login com o usuário informado.
                    * Se não existe parametro de entrada, o sistema abre a tela de login para que possa ser informado o usuário e senha
                    */
                    //foreach (string p in Parametros)
                    //{
                    //    if (p.Trim() != "")
                    //    {
                    //        string[] s = p.Split('=');
                    //        if (s[0].Trim().ToUpper() == "C")
                    //        {
                    //            LoginDTO LoginDtoRetorno = new LoginDTO();
                    //            LoginDtoRetorno.Login = s[1].Replace(";", "").Trim();
                    //            LoginDtoRetorno.Senha = "";
                    //            LoginDtoRetorno.viaAdmex = true;
                    //            //Recuperando dados
                    //            LoginDtoRetorno = LoginBLL.Logar(LoginDtoRetorno, SysBLL.InfoModuloDTO.Modulo, SysBLL.strConexao);
                    //            if (LoginDtoRetorno.Id != 0)
                    //            {
                    //                SysBLL.UserLogin = LoginDtoRetorno; //Guardando as propriedades do usuário logado, ficando disponível em todo o projeto
                    //                                                    /////Usuário para teste
                    //                                                    //SysBLL.UserLogin.Login = "TESTE";
                    //                                                    //SysBLL.UserLogin.Tipo = "O";
                    //                                                    //SysBLL.UserLogin.DescricaoTipo = "Operador";
                    //                                                    //SysBLL.UserLogin.PermiteAlteracao = false;
                    //                                                    /////
                    //                Application.Run(new mdiPrincipal());
                    //                return;
                    //            }
                    //            else
                    //            {
                    //                MessageBox.Show("Usuário não encontrado!", "Erro de Acesso", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    //                return;
                    //            }
                    //        }
                    //    }
                    //}
                    frmLogin frmLogin = new frmLogin();
                    DialogResult result = frmLogin.ShowDialog();
                    if (result == DialogResult.OK)
                    {
                        frmLogin.Close();
                        frmLogin.Dispose();

                        Application.Run(new mdi_principal());
                    }
                }
                catch (Exception ex)
                {
     (O ERRO ESTÁ NESSA LINHA QUANDO EU DEBUGO) MessageBox.Show(ex.Message, "Erro do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Error); 
                }
            }
        }
    }
    quinta-feira, 15 de agosto de 2019 17:28