• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Luis Marques

Erro ao ir buscar dado a uma datagridview

11 mensagens neste tópico

boas, é assim pessoal eu tenho um codigo num botao numa dialog, para perguntar uma quantidade,etc.... mas dame ali um erro.

Dim aux As String

        aux = Form11.DataGridView1.Rows(e.RowIndex).Cells(1).Value

        ' ACESSO AOS DADOS

        Dim comandosql = "SELECT preco FROM produtos where id_produto = " + aux

dame aqui erro: e.RowIndex

é por a datagrid estar na form11 e eu estar a fazer o codigo numa dialog, tenho de colocar o que em vez de e.RowIndex sabem me dizer??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tens que passar esse parâmetro á dialog, pode ser logo no construtor por exemplo,

o e.RowIndex faz parte do evento de duplo clique, não existe na tua dialog, tens q ser tu a passar o parâmetro

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

 

  Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click

        'Me.DialogResult = System.Windows.Forms.DialogResult.OK

        Dim resposta As String

        Dim idx_linha As Integer

        Dim conta As Double

        Dim db As New OleDbConnection(pap.My.Settings.ligacaoBD)

        ' LIGAR A BD

        db.Open()

        Dim aux As String

        aux = Form11.DataGridView1.Rows(e.RowIndex).Cells(1).Value

        ' ACESSO AOS DADOS

        Dim comandosql = "SELECT preco FROM produtos where id_produto = " + aux

        Dim cmd As New OleDbCommand(comandosql, db)

        Dim dtr As OleDbDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)

        ' CARREGAR OS DADOs

        While dtr.Read()

            aux = dtr.Item(0)

        End While

        ' FECHAR A BD

        dtr.Close()

        conta = resposta * aux

        Form11.enviar3(conta, resposta)

        Dim inttotal As Double

        Dim x As DataGridViewRow

        For Each x In Form11.DataGridView1.Rows

            inttotal += x.Cells(4).Value

        Next

        Form11.TotalTextBox.Text = inttotal

        Me.Close()

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bem, isso é apenas o código do botão OK...

então... experimenta o seguinte

na DataGridView1 mete o SelectionMode como FullRowSelect e o MultiSelect a False

agora já podes usar a DataGridView1.SelectedRows(0).Cells..... para ires buscar o que queres

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já coloquei SelectionMode como FullRowSelect e o MultiSelect a False, agoro coloco SelectedRows(0) no lugar de e.rowindex nao pois nao?

aux = Form11.DataGridView1.Rows(e.RowIndex).Cells(1).Value

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

aux = Form11.DataGridView1.SelectedRows(0).Cells(1).Value

mas percebeste o que fizeste?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Luis Marques basicamente o objecto "e" (do tipo System.EventArgs) que estavas a chamar pertencia ao Butão logo nao continha um e.RowIndex porque o butão não tem RowIndex e por isso dava erro..

o que o vitortomaz te disse basicamete fez com que ao seleccionasses uma Row na datagridview tivesses acesso a ela e consequentemente a sua posição :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora