none
Como atualizar DataGridView quando houver alguma alteração na tabela RRS feed

  • Pergunta

  • Olá pessoal, estou gerando um DataGridView conforme a rotina abaixo, mas quando incluo algum registo ou faço alguma alteração, tenho que executar novamente a rotina para o Grid ficar atualizado, é correto fazer dessa forma a cada vez que tenha alguma alteração na tabela, ter que executar essa rotina ?

    WindowsForm, MySQL, C#

    private void atualizaGrid()
            {
                try
                {

                    int linhaselecionada = 0;
                    if (dataGridView1.CurrentRow != null)
                    {
                        linhaselecionada = dataGridView1.CurrentRow.Index;
                    }
                    //*************************************************************************
                    MySqlDataAdapter da = null;
                    DataTable dt = null;
                    MySqlCommand cmd = null;
                    cmd = new MySqlCommand();
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.CommandText = "seleccli";
                    cmd.Parameters.AddWithValue("@pcodven", Int32.Parse(frmLogin.codusu));
                    cmd.Connection = Program.conn;
                    dt = new DataTable();
                    da = new MySqlDataAdapter(cmd);
                    da.Fill(dt);
                    this.dataGridView1.DataSource = dt; 

                    //**************************************************************************
                    // CABEÇALHO
                    dataGridView1.Columns["status"].HeaderText = "Sta";
                    dataGridView1.Columns["id"].HeaderText = "Id";
                    dataGridView1.Columns["nomecli"].HeaderText = "Cliente";

                    dataGridView1.Columns["STATUS"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    dataGridView1.Columns["adt"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    dataGridView1.Columns["chd"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

                    dataGridView1.Columns["id"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;

                    dataGridView1.Columns["STATUS"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;

                    dataGridView1.Columns["id"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;

                    // LARGURA DAS COLUNAS DO DATAGRIDVIEW
                    dataGridView1.Columns["STATUS"].Width = 30;
                    dataGridView1.Columns["NOMECLI"].Width = 210;
                    dataGridView1.Columns["DTCONTATO"].Width = 70;

                    if (dt.Rows.Count == 0)
                    {
                        try
                        {
                            dataGridView1.CurrentCell = dataGridView1.Rows[linhaselecionada].Cells[1];
                        }
                        catch
                        {
                        }
                    }

                    if (dt.Rows.Count > 0)
                    {
                        try
                        {
                            dataGridView1.CurrentCell = dataGridView1.Rows[linhaselecionada].Cells[1];
                        }
                        catch
                        {
                            if (linhaselecionada > 0)
                            {
                                linhaselecionada--;
                                dataGridView1.CurrentCell = dataGridView1.Rows[linhaselecionada].Cells[1];
                            }
                        }
                    }
                }

                catch (Exception e)
                {
                    MessageBox.Show(e.Message);
                }
            }

    sexta-feira, 24 de novembro de 2017 23:08

Respostas

Todas as Respostas