Undefined object reference for an object instance. c#

Asked

Viewed 43 times

0

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

Whenever I try to delete some record I get this message: Undefined object reference for an object instance.

Where am I going wrong?

  • DAO is a static class? in the delete method does not have the creation of an instance of it

  • Debugged the code? dtgDados.CurrentRow.Cells["ID"] is not null?

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.