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– Ricardo Pontual
Debugged the code?
dtgDados.CurrentRow.Cells["ID"]
is not null?– Leandro Angelo