none
Pegar id DataGridView RRS feed

  • Pergunta

  • Olá,

    Tenho um DataGridView que está exibindo alguns dados do banco. 

    Ex: CODIGO, DESCRICAO E VALOR. 

    Eu gostaria de pegar o id da linha selecionada, em um evento click de um botão. Eu consegui pegar os valores das linhas que estão sendo exibidas no Grid, mas não consegui pegar o id da linha selecionada, sendo que não estou exibindo a minha coluna id no Grid.

    Alguém poderia me dar uma força?

    Obrigado,

    quarta-feira, 9 de maio de 2012 17:15

Respostas

  • Tenta assim:

    VB.NET

    Private Sub grdviewGrid_SelectionChanged(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles grdviewGrid.SelectionChanged
       Dim id As Integer = e.RowIndex
    End Sub

    C#

    private void grdviewGrid_SelectionChanged(System.Object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
    {
    	int id = e.RowIndex;
    }


    O evento SelectionChanged ocorre quando você troca uma linha ou célula selecionada e a propriedade e.RowIndex indica o índice da linha selecionada

    Se você estiver falando do ID da sua linha do banco de dados, coloque a coluna ID no seu select e coloque na DataGridView também, porém, use as propriedades da Coluna ID do GridView Visible = False e ReadOnly = True:

    C#

    dataGridView1.Columns["ID"].Visible = false;
    dataGridView1.Columns["ID"].ReadOnly = true;

    Espero ter ajudado, abraços!


    thiagokoelho

    • Sugerido como Resposta Jean Menezes quarta-feira, 9 de maio de 2012 17:31
    • Não Sugerido como Resposta Jean Menezes quarta-feira, 9 de maio de 2012 17:31
    • Marcado como Resposta Diogo_Costa quarta-feira, 9 de maio de 2012 18:20
    quarta-feira, 9 de maio de 2012 17:27

Todas as Respostas

  • Eu jeito que eu usei pra resolver isso foi criar um campo chamado IDBOX que recebe os dados da minha coluna ID do SQL com o comando:

    IDBOX.Text = DBView.CurrentRow.Cells[0].Value.ToString();

    ps.DBView é meu DataGrid

    Outra observação, você adicionou o evento SelectionChanged no seu DataGrid?

    Com esse evento, sempre que mudar a linha do seu DataGrid ele vai atualizar o ID

    Espero ter ajudado


    • Sugerido como Resposta Jean Menezes quarta-feira, 9 de maio de 2012 17:23
    • Editado Jean Menezes quarta-feira, 9 de maio de 2012 17:30
    quarta-feira, 9 de maio de 2012 17:23
  • Tenta assim:

    VB.NET

    Private Sub grdviewGrid_SelectionChanged(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles grdviewGrid.SelectionChanged
       Dim id As Integer = e.RowIndex
    End Sub

    C#

    private void grdviewGrid_SelectionChanged(System.Object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
    {
    	int id = e.RowIndex;
    }


    O evento SelectionChanged ocorre quando você troca uma linha ou célula selecionada e a propriedade e.RowIndex indica o índice da linha selecionada

    Se você estiver falando do ID da sua linha do banco de dados, coloque a coluna ID no seu select e coloque na DataGridView também, porém, use as propriedades da Coluna ID do GridView Visible = False e ReadOnly = True:

    C#

    dataGridView1.Columns["ID"].Visible = false;
    dataGridView1.Columns["ID"].ReadOnly = true;

    Espero ter ajudado, abraços!


    thiagokoelho

    • Sugerido como Resposta Jean Menezes quarta-feira, 9 de maio de 2012 17:31
    • Não Sugerido como Resposta Jean Menezes quarta-feira, 9 de maio de 2012 17:31
    • Marcado como Resposta Diogo_Costa quarta-feira, 9 de maio de 2012 18:20
    quarta-feira, 9 de maio de 2012 17:27
  • E ae Jean,

    Eu não tenho uma coluna ID, digamos que só tenha 3 colunas: CODIGO , DESCRICAO e VALOR. Nessa sua solução ele está pegando o valor de CODIGO, da linha que eu selecionei. Eu queria pegar o ID da linha sem ter que exibir a coluna ID no meu datagridview.

    Sacou?

    Mais alguma sugestão?


    quarta-feira, 9 de maio de 2012 17:51
  • Isso mesmo Thiago, deu certo.

    Muito obrigado pela força.

    Abraço

    quarta-feira, 9 de maio de 2012 18:22