1
I’m working on a c# project where I have a form TelaInicio
where there is a DataGridView
where all bank information is loaded and for this I have created a method called CarregarGrid()
in form TelaInicio
public void CarregarGrid()
{
try{
//indico o número de colunas
dgvDados.ColumnCount = 14;
objConnection = new MySqlConnection(caminho);
//instância do comando onde passo
//o sql e a conexão como parâmetro
objComando = new MySqlCommand("SELECT * FROM checagens" , objConnection);
//abro a conexão
objConnection.Open();
//instâncio o leitor
var leitor = objComando.ExecuteReader();
//enquanto leitor está lendo
while (leitor.Read())
{
//insiro os dados no dgvDados
dgvDados.Rows.Add(leitor[0].ToString(),
leitor[1].ToString(),
leitor[2].ToString(),
leitor[3].ToString(),
leitor[4].ToString(),
leitor[5].ToString(),
leitor[6].ToString(),
leitor[7].ToString(),
leitor[8].ToString(),
leitor[9].ToString(),
leitor[10].ToString(),
leitor[11].ToString(),
leitor[12].ToString(),
leitor[13].ToString());
}
}
I call this method no Form_Load
of TelaInicio
private void TelaInicio_Load(object sender, EventArgs e)
{
CarregarGrid();
dgvDados.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dgvDados.Columns[0].Name = "CNPJ";
dgvDados.Columns[1].Name = "DATA";
dgvDados.Columns[2].Name = "RAZÃO SOCIAL";
dgvDados.Columns[3].Name = "OPERADORA";
dgvDados.Columns[4].Name = "LINHAS";
dgvDados.Columns[5].Name = "VIGENCIA";
dgvDados.Columns[6].Name = "CONTRATO";
dgvDados.Columns[7].Name = "VALOR GASTO";
dgvDados.Columns[8].Name = "FIXO EMPRESA";
dgvDados.Columns[9].Name = "GESTOR";
dgvDados.Columns[10].Name = "CELULAR";
dgvDados.Columns[11].Name = "FIXO GESTOR";
dgvDados.Columns[12].Name = "EMAIL";
dgvDados.Columns[13].Name = "OBSERVAÇÕES";
lblRegistros.Text = (dgvDados.Rows.Count - 1).ToString();
}
Until then ok he pulls all the data right to the DataGridView
, but I have another form called Cadastrar
where in it I register all the information and thence already go straight to the bank, however if I leave the CarregarGrid()
only in the Form_Load
every time I make a new registration for him to update the Grid I will have to open and close the program, thinking to avoid this I instated the method and I am calling him after the click of button
Register in the Form Cadastrar
private void btncadastrar_Click_1(object sender, EventArgs e)
{
DateTime inicio = dtpvigencia.Value;
DateTime fim = DateTime.Now;
int mesesDiff = ajustaMesAno(fim) - ajustaMesAno(inicio);
if (inicio.Day > fim.Day)
{
mesesDiff--;
}
Checagem checagem = new Checagem();
checagem.Cnpj = txtcnpj.Text;
checagem.Razao = txtrazao.Text;
checagem.Operadora = cmboperadora.Text;
checagem.Linhas = txtlinhas.Text;
checagem.Vigencia = dtpvigencia.Text;
checagem.MesesContrato = mesesDiff.ToString();
checagem.ValorGasto = txtvalorgasto.Text;
checagem.Fixoempresa = txtfixoempresa.Text;
checagem.Gestor = txtgestor.Text;
checagem.Celular = txtcelular.Text;
checagem.Fixogestor = txtfixogestor.Text;
checagem.Email = txtemail.Text;
checagem.Obs = txtobs.Text;
if (cadchecagem(checagem))
{
MetroFramework.MetroMessageBox.Show(this, "Dados cadastrados com sucesso ", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
Utilidades.Funcoes.LimparCampos(gbchecagem);
this.telainicio.CarregarGrid(); //Chamada do método
}
}
The problem is that after clicking the button it loads all the information that is already in the DataGridView
all over again I wish that didn’t happen that he updated only with the registration that was made at that time, I’ve been thinking of several ways but I haven’t succeeded.
the
this.dgvDados.Rows.Clear();
already solved the situation thank you very much, but what you mentioned is an interesting alternative– Patrick Perdigão